Header menu logo FSharp.ATProto

FSharp.ATProto

A native F# library for the AT Protocol and Bluesky. Pure F#, no C# wrappers. Immutable domain types, result-based error handling, and a convenience API that makes the protocol disappear -- you think in posts, profiles, and follows, not records and XRPC calls.

open FSharp.ATProto.Bluesky

taskResult {
    let! agent = Bluesky.login "https://bsky.social" "handle.bsky.social" "app-password"
    let! post = Bluesky.post agent "Hello from F#! #atproto"
    printfn "Posted: %s" (AtUri.value post.Uri)
    return post
}

Getting Started

Add a project reference to FSharp.ATProto.Bluesky -- it pulls in all dependencies transitively. Then head to the Quickstart to go from zero to first post in five minutes.

Type Reference

Advanced Guides

Server-Side

Infrastructure

Architecture

The library is organized in layers, each building on the one below:

Package

Purpose

FSharp.ATProto.Syntax

Identifier types (DID, Handle, NSID, AT-URI, etc.)

FSharp.ATProto.DRISL

CBOR encoding, CID computation, data integrity

FSharp.ATProto.Lexicon

Lexicon schema parser and record validator

FSharp.ATProto.Core

XRPC client, session auth, rate limiting, pagination

FSharp.ATProto.Bluesky

Generated types, rich text, identity, convenience methods

FSharp.ATProto.Streaming

Jetstream and Firehose event streams

FSharp.ATProto.Moderation

Label-aware moderation engine

FSharp.ATProto.FeedGenerator

Custom feed generator framework

FSharp.ATProto.OAuth

OAuth 2.0 client with DPoP and PKCE

FSharp.ATProto.OAuthServer

OAuth 2.0 authorization server

FSharp.ATProto.Crypto

Cryptographic keys, signing, did:key

FSharp.ATProto.Repo

Repository MST, commits, CAR export

FSharp.ATProto.XrpcServer

XRPC server framework with auth and rate limiting

Tests across 14 projects.

License

MIT

Multiple items
namespace Microsoft.FSharp

--------------------
namespace FSharp
val printfn: format: Printf.TextWriterFormat<'T> -> 'T

Type something to start searching.