Skip to content

blacksky-algorithms/rsky

Repository files navigation

AT Protocol Implementation (Rust)

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


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

Rust Services:

  • 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.

About AT Protocol

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

Roadmap

  • Feedgen and firehose consumer
  • PDS implementation
  • 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.

Contribution

We welcome contributions from the community to help us improve and expand rsky. If you're interested in contributing, please feel free to submit issues or pull requests on the GitHub repository. We appreciate your support!

Rules:

  • We'll try our best but may not respond to your issue or PR.
  • We may close an issue or PR without much feedback.
  • We may lock discussions or contributions if our attention is getting DDOSed.
  • We do not provide support for build issues.

Guidelines:

  • Strict adherence to our Code of Conduct
  • Implementations should follow closely to the canonical Typescript implementation
  • Check for existing issues before filing a new one, please.
  • Open an issue and give some time for discussion before submitting a PR.
  • Stay away from PRs that:
    • Refactor large parts of the codebase
    • Add entirely new features without prior discussion
    • Change the tooling or frameworks used without prior discussion
    • Introduce new unnecessary dependencies

License

rsky is released under the Apache License 2.0.