MCPcopy Index your code
hub / github.com/atrium-rs/atrium

github.com/atrium-rs/atrium @atrium-api-v0.25.8

Chat with this repo
repository ↗ · DeepWiki ↗ · release atrium-api-v0.25.8 ↗ · + Follow
2,553 symbols 4,464 edges 480 files 385 documented · 15%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

ATrium

ATrium is a collection of Rust libraries designed to work with the AT Protocol, providing a versatile and coherent ecosystem for developers. The name is inspired by the concept of an "atrium" with a view of the open bluesky, reflecting the open nature of the project.

Our goal is to provide a comprehensive, easy-to-use, and efficient library that caters to various use cases and scenarios involving the AT Protocol.

Please note that ATrium is still under active development and many features may be subject to change or enhancement. We appreciate your understanding and patience during this phase.

Overview

ATrium is divided into several sub-projects to address different aspects of the AT Protocol and provide a modular design:

atrium-api

A library consisting of models and messaging definitions for XRPC, primarily generated using the codegen library.

atrium-xrpc

Definitions for XRPC request/response, and their associated errors.

atrium-xrpc-client

A library provides clients that implement the XrpcClient defined in atrium-xrpc

bsky-sdk

ATrium-based SDK for Bluesky.

bsky-cli

A command-line app using this API library.

Code generation

The models and messaging definitions for XRPC are generated with these crates:

atrium-lex

A library that provides type definitions for parsing the AT Protocol's Lexicon schema, ensuring compatibility with the lexicon.

atrium-codegen

A library that generates Rust code for the atrium-api based on the analyzed lexicon definitions.

lexgen command

cd lexicon && cargo run -p lexgen -- --lexdir $HOME/.ghq/github.com/bluesky-social/atproto/lexicons

Contribution

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

License

ATrium is released under the MIT License.

Related works

Below are some related projects that might be of interest:

  • atproto https://github.com/bluesky-social/atproto
  • The leading protocol implementation
  • rsky https://github.com/blacksky-algorithms/rsky
  • An AT Protocol Implementation built in Rust, using atrium.
  • adenosine https://gitlab.com/bnewbold/adenosine
  • atproto-rs https://github.com/ngerakines/atproto-rs
  • atproto-rs https://github.com/Maaarcocr/atproto-rs
  • bisky https://github.com/jesopo/bisky
  • lexicon-rs https://github.com/Matrix89/lexicon-rs

Extension points exported contracts — how you extend this code

Configure (Interface)
A trait for configuring the endpoint and headers of a client. [8 implementers]
atrium-api/src/agent.rs
Resolver (Interface)
(no doc) [16 implementers]
atrium-common/src/resolver.rs
HttpClient (Interface)
(no doc) [19 implementers]
atrium-xrpc/src/traits.rs
AsyncBlockStoreRead (Interface)
(no doc) [4 implementers]
atrium-repo/src/blockstore.rs
Did (Interface)
Generate a DID key string from a keypair. [2 implementers]
atrium-crypto/src/keypair.rs
HandleResolver (Interface)
(no doc) [4 implementers]
atrium-identity/src/handle.rs
SessionStore (Interface)
(no doc) [3 implementers]
atrium-oauth/src/store/session.rs
Loader (Interface)
The trait for loading configuration data. [1 implementers]
bsky-sdk/src/agent/config.rs

Core symbols most depended-on inside this repo

default
called by 360
bsky-sdk/src/agent/builder.rs
clone
called by 179
atrium-repo/src/mst.rs
parse
called by 76
atrium-repo/src/mst.rs
clone
called by 57
atrium-api/src/agent/utils.rs
clone
called by 48
atrium-oauth/src/server_agent.rs
add
called by 45
atrium-repo/src/mst.rs
value_cid
called by 44
atrium-repo/src/mst.rs
contains
called by 32
atrium-repo/src/blockstore/memory.rs

Shape

Method 922
Class 884
Enum 412
Function 305
Interface 30

Languages

Rust100%

Modules by API surface

atrium-api/src/client.rs225 symbols
atrium-repo/src/mst.rs63 symbols
atrium-api/src/tools/ozone/moderation/defs.rs51 symbols
atrium-api/src/types/string.rs44 symbols
lexicon/atrium-codegen/src/token_stream.rs39 symbols
atrium-repo/src/repo.rs38 symbols
bsky-sdk/src/moderation/types.rs37 symbols
atrium-api/src/types.rs37 symbols
atrium-api/src/app/bsky/actor/defs.rs34 symbols
lexicon/atrium-lex/src/lexicon.rs33 symbols
atrium-api/src/agent/atp_agent.rs32 symbols
atrium-api/src/agent.rs32 symbols

For agents

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

⬇ download graph artifact

Ask about this repo answers extend the page