FSharp.ATProto.Syntax 0.3.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package FSharp.ATProto.Syntax --version 0.3.0
                    
NuGet\Install-Package FSharp.ATProto.Syntax -Version 0.3.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.Syntax" Version="0.3.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FSharp.ATProto.Syntax" Version="0.3.0" />
                    
Directory.Packages.props
<PackageReference Include="FSharp.ATProto.Syntax" />
                    
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.Syntax --version 0.3.0
                    
#r "nuget: FSharp.ATProto.Syntax, 0.3.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.Syntax@0.3.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.Syntax&version=0.3.0
                    
Install as a Cake Addin
#tool nuget:?package=FSharp.ATProto.Syntax&version=0.3.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

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 (10)

Showing the top 5 NuGet packages that depend on FSharp.ATProto.Syntax:

Package Downloads
FSharp.ATProto.DRISL

DRISL/CBOR encoding and CID computation for AT Protocol data integrity.

FSharp.ATProto.Core

XRPC client, session authentication, rate limiting, and cursor-based pagination for the AT Protocol.

FSharp.ATProto.Bluesky

Native F# client for Bluesky and the AT Protocol. Type-safe, functional-first, exception-free. Posts, social graph, chat, feeds, profiles, notifications, moderation, and full XRPC access via 237 typed endpoint wrappers generated from 324 Lexicon schemas.

FSharp.ATProto.OAuth

OAuth 2.0 authentication with DPoP support for the AT Protocol.

FSharp.ATProto.Streaming

Jetstream event streaming client for the AT Protocol.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.4.0 153 3/25/2026
0.3.0 168 3/5/2026
0.2.0 157 3/4/2026
0.1.2 113 3/4/2026
0.1.1 109 3/4/2026
0.1.0 112 3/3/2026