Rsky
An AT Protocol implementation prioritizing community safety and self-governance, written in Rust.
Install / Use
/learn @blacksky-algorithms/RskyREADME
[!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 | |
|
rsky-identity: DID and handle resolution | README | |
|
rsky-lexicon: schema definition language | README | |
|
rsky-syntax: string parsers for identifiers | README | |
|
rsky-common: shared code | README | |
|
rsky-repo: data storage structure, including MST | README | |
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:
- Overview and Guides 👈🏾 Best starting point
- Github Discussions 👈🏾 Great place to ask questions
- Protocol Specifications
- Blogpost on self-authenticating data structures
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.com/blacksky/backer/0/website?requireActive=false" target="_blank"><img src="https://opencollective.com/blacksky/backer/0/avatar.svg?requireActive=false"></a> <a href="https://opencollective.com/blacksky/backer/1/website?requireActive=false" target="_blank"><img src="https://opencollective.com/blacksky/backer/1/avatar.svg?requireActive=false"></a> <a href="https://opencollective.com/blacksky/backer/2/website?requireActive=false" target="_blank"><img src="https://opencollective.com/blacksky/backer/2/avatar.svg?requireActive=false"></a> <a href="https://opencollective.com/blacksky/backer/3/website?requireActive=false" target="_blank"><img src="https://opencollective.com/blacksky/backer/3/avatar.svg?requireActive=false"></a> <a href="https://opencollective.com/blacksky/backer/4/website?requireActive=false" target="_blank"><img src="https://opencollective.com/blacksky/backer/4/avatar.svg?requireActive=false"></a> <a href="https://opencollective.com/blacksky/backer/5/website?requireActive=false" target="_blank"><img src="https://opencollective.com/blacksky/backer/5/avatar.svg?requireActive=false"></a> <a href="https://opencollective.com/blacksky/backer/6/website?requireActive=false" target="_blank"><img src="https://opencollective.com/blacksky/backer/6/avatar.svg?requireActive=false"></a> <a href="https://opencollective.com/blacksky/backer/7/website?requireActive=false" target="_blank"><img src="https://opencollective.com/blacksky/backer/7/avatar.svg?requireActive=false"></a> <a href="https://opencollective.com/blacksky/backer/8/website?requireActive=false" target="_blank"><img src="https://opencollective.com/blacksky/backer/8/avatar.svg?requireActive=false"></a> <a href="https://opencollective.com/blacksky/backer/9/website?requireActive=false" target="_blank"><img src="https://opencollective.com/blacksky/backer/9/avatar.svg?requireActive=false"></a> <a href="https://opencollective.com/blacksky/backer/10/website?requireActive=false" target="_blank"><img src="https://opencollective.com/blacksky/backer/10/avatar.svg?requireActive=false"></a> <a href="https://opencollective.com/blacksky/backer/11/website?requireActive=false" target="_blank"><img src="https://opencollective.com/blacksky/backer/11/avatar.svg?requireActive=false"></a> <a href="https://opencollective.com/blacksky/backer/12/website?requireActive=false" target="_blank"><img src="https://opencollective.com/blacksky/backer/12/avatar.svg?requireActive=false"></a> <a href="https://opencollective.com/blacksky/backer/13/website?requireActive=false" target="_blank"><img src="https://opencollective.com/blacksky/backer/13/avatar.svg?requireActive=false"></a> <a href="https://opencollective.com/blacksky/backer/14/website?requireActive=false" target="_blank"><img src="https://opencollective.com/blacksky/backer/14/avatar.svg?requireActive=false"></a> <a href="https://opencollective.com/blacksky/backer/15/website?requireActive=false" target="_blank"><img src="https://opencollective.com/blacksky/backer/15/avatar.svg?requireActive=false"></a> <a href="https://opencollective.com/blacksky/backer/16/website?requireActive=false" target="_blank"><img src="https://opencollective.com/blacksky/backer/16/avatar.svg?requireActive=false"></a> <a href="https://opencollective.com/blacksky/backer/17/website?requireActive=false" target="_blank"><img src="https://opencollective.com/blacksky/backer/17/avatar.svg?requireActive=false"></a> <a href="https://opencollective.com/blacksky/backer/18/website?requireActive=false" target="_blank"><img src="https://opencollective.com/blacksky/backer/18/avatar.svg?requireActive=false"></a> <a href="https://opencollective.com/blacksky/backer/19/website?requireActive=false" target="_blank"><img src="https://opencollective.com/blacksky/backer/19/avatar.svg?requireActive=false"></a> <a href="https://opencollective.com/blacksky/backer/20/website?requireActive=false" target="_blank"><img src="https://opencollective.com/blacksky/backer/20/avatar.svg?requireActive=false"></a> <a href="https://opencollective.com/blacksky/backer/21/website?requireActive=fals
Related Skills
bluebubbles
343.3kUse when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration). Calls go through the generic message tool with channel="bluebubbles".
himalaya
343.3kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
bear-notes
343.3kCreate, search, and manage Bear notes via grizzly CLI.
coding-agent
343.3kDelegate coding tasks to Codex, Claude Code, or Pi agents via background process
