MCPcopy Index your code
hub / github.com/blacksky-algorithms/rsky

github.com/blacksky-algorithms/rsky @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
5,321 symbols 10,533 edges 375 files 293 documented · 6%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README
<a href="https://blackskyweb.xyz">
<img src="https://github.com/user-attachments/assets/e702e2ed-5c97-4dad-94fe-237dbfbd20c9">
</a>

AT Protocol Implementation (Rust)

Ceasefire Now dependency status Follow License GitHub code size in bytes GitHub Repo stars Backers on Open Collective Join Our Discord


[!WARNING] This library is a work in progress. Things will change. Things are incomplete. Things will break. Until the project reaches version 1.0.0, stability will not be guaranteed.

rsky (/ˈrɪski/) is intended to be a full implementation of AT Protocol in the Rust language. Most of the code here are general purpose implementations while some (like rsky-feedgen) are specific to the use cases of the Blacksky community.

What is in here?

Rust Crates:

Crate Docs crates.io
rsky-crypto: cryptographic signing and key serialization README Crate
rsky-identity: DID and handle resolution README Crate
rsky-lexicon: schema definition language README Crate
rsky-syntax: string parsers for identifiers README Crate
rsky-common: shared code README Crate
rsky-repo: data storage structure, including MST README Crate

Rust Services:

  • rsky-relay: The Relay handles "big-world" networking. It crawls the network, gathering as much data as it can, and outputs it in one big stream for other services to use. It’s analogous to a firehose provider or a super-powered relay node.
  • rsky-pds: "Personal Data Server", hosting repo content for atproto accounts. It differs from the canonical Typescript implementation by using Postgres instead of SQLite, s3 compatible blob storage instead of on-disk, and mailgun for emailing. All to make the PDS easier to migrate between cloud hosting providers and more maintainable.
  • rsky-feedgen: Bluesky feed generator that closely follows the use cases of the Blacksky community.
  • rsky-firehose: Firehose consumer.
  • rsky-jetstream-subscriber: Firehose consumer for Jetstream.
  • rsky-labeler: Firehose consumer that labels content.
  • rsky-satnav: "Structured Archive Traversal, Navigation & Verification", a DASL CAR and AT Protocol repository explorer.
  • rsky-wintermute: Indexer for bsky app-view.

About AT Protocol

The Authenticated Transfer Protocol ("ATP" or "atproto") is a decentralized social media protocol, developed by Bluesky PBC. Learn more at:

Roadmap

  • [x] Feedgen and firehose consumer
  • [x] PDS implementation
  • [x] Frontend bluesky client
  • [ ] Feedgen admin client

Backers

Become a backer and get your image on our README on GitHub with a link to your site.

<a href="https://opencollective.

Extension points exported contracts — how you extend this code

AsyncPartialEq (Interface)
(no doc) [7 implementers]
rsky-repo/src/mst/mod.rs
IdentityResolver (Interface)
Hot-path interface used by the validator. Returns owned values so the resolver isn't borrowed across the rest of the val [2 …
rsky-relay/src/validator/resolver.rs
Frame (Interface)
(no doc) [2 implementers]
rsky-pds/src/xrpc_server/stream/frames.rs
ReadableBlockstore (Interface)
(no doc) [3 implementers]
rsky-repo/src/storage/readable_blockstore.rs
HostListFetcher (Interface)
(no doc) [2 implementers]
rsky-relay/src/server/server.rs
RepoStorage (Interface)
(no doc) [3 implementers]
rsky-repo/src/storage/types.rs
DecomposeError (Interface)
(no doc) [1 implementers]
rsky-relay/src/crawler/types.rs

Core symbols most depended-on inside this repo

to_string
called by 877
rsky-feedgen/src/models/error_code.rs
eq
called by 316
rsky-repo/src/mst/mod.rs
get
called by 302
rsky-wintermute/src/ingester/backfill_queue.rs
push
called by 279
rsky-common/src/async.rs
as_str
called by 271
rsky-repo/src/types.rs
get
called by 175
rsky-relay/src/types.rs
iter
called by 150
rsky-repo/src/mst/mod.rs
into_iter
called by 146
rsky-repo/src/block_map.rs

Shape

Class 3,140
Function 1,249
Method 797
Enum 128
Interface 7

Languages

Rust100%
Python1%

Modules by API surface

rsky-pds/src/lexicon/lexicons.rs2,507 symbols
rsky-wintermute/src/indexer/mod.rs97 symbols
rsky-repo/src/mst/mod.rs84 symbols
rsky-wintermute/src/storage.rs55 symbols
rsky-relay/src/validator/event.rs53 symbols
rsky-wintermute/src/ingester/tests.rs50 symbols
rsky-repo/src/types.rs49 symbols
rsky-syntax/src/aturi.rs45 symbols
rsky-pds/src/account_manager/mod.rs45 symbols
rsky-repo/src/repo.rs42 symbols
rsky-pds/src/auth_verifier.rs41 symbols
rsky-lexicon/src/app/bsky/actor.rs40 symbols

Datastores touched

postgresDatabase · 1 repos
bsky_testDatabase · 1 repos
appview_dbDatabase · 1 repos
bskyDatabase · 1 repos
localDatabase · 1 repos

For agents

$ claude mcp add rsky \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact