Skip to content

About

An AT Protocol implementation prioritizing community safety and self-governance, written in Rust.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

1,542 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

AT Protocol, implemented in Rust

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


rsky (/ˈrɪski/) is a full implementation of AT Protocol in Rust. Most of the code is general purpose. Some of it, like rsky-feedgen, is written for the needs of the Blacksky community.

We developed rsky so that any community on the network can run their own infrastructure, moderate on their own terms, and leave if they ever need to. A second implementation of the protocol is how that stays possible.

Warning

This is a work in progress. Things change, things are incomplete, and things break. Until 1.0.0 we make no stability promises.

What's in here

Crates (published to crates.io, usable on their own):

Crate What it does Docs crates.io
rsky-common Shared code README Crate
rsky-crypto Signing and key serialization README Crate
rsky-identity DID and handle resolution README Crate
rsky-lexicon Lexicon schema types README Crate
rsky-oauth OAuth provider core. JOSE, JWK and DPoP for AT Protocol services README Crate
rsky-repo Repository storage, including the MST README Crate
rsky-syntax Parsers for handles, DIDs, NSIDs and other identifiers README Crate
rsky-space Permissioned-data primitives. LtHash commits, credentials and space repos for access controlled or private records that only members can read README Crate

Services (the things we deploy):

  • rsky-pds: Personal Data Server. It hosts accounts and their repos. Each account's data lives in its own SQLite store on disk, blobs go to local disk or an S3 bucket, and email goes out through Mailgun or any SMTP server.
  • rsky-pds-router: Stateless HTTP router that sits in front of two PDS implementations sharing one data directory. It pins each account to one writer, lets reads move to the second implementation one account at a time, and journals every write before forwarding it, so accounts can migrate between implementations while both stay live.
  • rsky-pdsadmin: Admin tooling for a running PDS.
  • rsky-relay: Crawls the network and emits one stream of everything it finds. The "big world" piece.
  • rsky-firehose: Firehose consumer.
  • rsky-jetstream-subscriber: Firehose consumer for Jetstream.
  • rsky-feedgen: Feed generator, built around the Blacksky community's feeds.
  • rsky-labeler: Firehose consumer that labels content for moderation.
  • rsky-wintermute: Indexer and backfiller for the app view.
  • rsky-space-host: Authority for a permissioned space. It issues space credentials, manages the space, and routes write notifications to members.
  • rsky-daemon: Syncer for permissioned data. It pulls each member's permissioned repo from their PDS, verifies it, and indexes it so a space can be read as one whole.
  • rsky-video: Video processing and serving.
  • rsky-satnav: "Structured Archive Traversal, Navigation & Verification." Explores DASL CAR files and AT Protocol repos.

Lexicons (/lexicons): Lexicon definitions for the parts of the protocol we extend, such as spaces.

About AT Protocol

The Authenticated Transfer Protocol (atproto) is a decentralized social protocol developed by Bluesky PBC. Start here:

Contributing

Issues and pull requests are welcome. Before you open one:

  • Read the Code of Conduct. We hold to it.
  • Follow the canonical TypeScript implementation closely. Where rsky differs on purpose, the difference is documented.
  • Check for an existing issue before filing a new one.
  • Open an issue and give it time for discussion before you send a PR.

PRs we will close without much discussion:

  • Large refactors
  • New features that were not discussed first
  • Changes to tooling or frameworks that were not discussed first
  • New dependencies we don't need

What to expect from us: we are a small team running production infrastructure. We will try to respond, and sometimes we won't. We may close an issue or PR with little feedback, lock a thread if it's eating our attention, and we don't provide support for build issues.

Backers

Become a backer and your avatar shows up here with a link to your site.

License

rsky is released under the Apache License 2.0.

About

An AT Protocol implementation prioritizing community safety and self-governance, written in Rust.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages