FSharp.ATProto.Crypto 0.4.0

dotnet add package FSharp.ATProto.Crypto --version 0.4.0
                    
NuGet\Install-Package FSharp.ATProto.Crypto -Version 0.4.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FSharp.ATProto.Crypto" Version="0.4.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FSharp.ATProto.Crypto" Version="0.4.0" />
                    
Directory.Packages.props
<PackageReference Include="FSharp.ATProto.Crypto" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add FSharp.ATProto.Crypto --version 0.4.0
                    
#r "nuget: FSharp.ATProto.Crypto, 0.4.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package FSharp.ATProto.Crypto@0.4.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=FSharp.ATProto.Crypto&version=0.4.0
                    
Install as a Cake Addin
#tool nuget:?package=FSharp.ATProto.Crypto&version=0.4.0
                    
Install as a Cake Tool

FSharp.ATProto

A native F# library for Bluesky and the AT Protocol. Built from the ground up in F#. No C# wrappers. Functional-first.

Install

dotnet add package FSharp.ATProto.Bluesky

Quick Example

open FSharp.ATProto.Bluesky

taskResult {
    let! agent = Bluesky.login "https://bsky.social" "my-handle.bsky.social" "app-password"
    let! post = Bluesky.post agent "Hello from F#!"
    let! like = Bluesky.like agent post // PostRef -> LikeRef (the compiler prevents mix-ups)
    let! reply = Bluesky.replyTo agent "Nice thread!" post // thread root resolved automatically
    let! _ = Bluesky.undo agent like // generic undo — works on any ref type
    return reply
}
// : Task<Result<PostRef, XrpcError>> — no exceptions, ever

Design

  • If it compiles, it's correct -- distinct types for every domain concept (PostRef, LikeRef, FollowRef, BlockRef...) mean the compiler catches your mistakes.
  • The library handles protocol complexity -- thread roots, rich text facets, chat proxy headers -- all resolved automatically.
  • Results, not exceptions -- every public function returns Result. No failwith, no try/catch.
  • Rich domain types -- PostRef, Profile, FeedItem, ConvoSummary, Page<'T>, and more. Plus convenience functions for search, bookmarks, muting, notifications, and moderation.
  • Generated from the spec -- 324 Lexicon schemas compiled to F# types + 237 typed XRPC endpoint wrappers.

Features

  • Posts -- create, reply, quote, delete, with automatic rich text detection
  • Rich text -- mentions, links, and hashtags detected and resolved automatically
  • Images -- upload and attach with typed ImageMime and alt text
  • Social graph -- follow, block, like, repost, mute, with typed refs and generic undo
  • Feeds -- timeline, author feed, actor likes, bookmarks
  • Profiles -- get, search, typeahead, batch fetch, upsert
  • Chat / DMs -- conversations, messages, reactions, with automatic proxy headers
  • Notifications -- fetch, count unread, mark seen
  • Moderation -- report content, mute threads, mod lists, and a full moderation engine
  • Identity -- DID resolution, handle verification, PDS discovery
  • Lists -- create and manage lists and starter packs
  • Preferences -- saved feeds, muted words, content filtering
  • Streaming -- real-time events via Jetstream and Firehose
  • Video -- upload and post video content
  • Pagination -- lazy IAsyncEnumerable paginators for timeline, followers, notifications
  • OAuth -- OAuth 2.0 client with DPoP/PKCE, plus authorization server
  • Server-side -- feed generator framework, XRPC server, service auth
  • Full XRPC access -- all 237 Bluesky endpoints available as typed wrappers

Documentation

Full docs at arrow7000.github.io/atproto-fsharp.

All documentation guides are written as literate F# scripts -- every code snippet is compiler-checked during the docs build, so examples are always in sync with the library.

License

MIT

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on FSharp.ATProto.Crypto:

Package Downloads
FSharp.ATProto.Repo

AT Protocol repository data structures: Merkle Search Tree (MST), signed commits, and CAR import/export.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.4.0 115 3/25/2026
0.3.0 115 3/5/2026
0.2.0 113 3/4/2026