A batteries-included backend framework for federated social applications. OAuth, Jetstream, XRPC, and code generation — all wired up. Bring your own frontend.
atrg handles the protocol plumbing so you can focus on your app's business logic. No boilerplate, no guesswork.
AT Protocol OAuth PKCE + DPoP flow. Login, sessions, JWT verification. Zero configuration.
Real-time event streaming with bounded backpressure, auto-reconnection, and lag detection.
AT Protocol RPC endpoints with typed error envelopes and lexicon-driven code generation.
Generate Rust types and Axum route stubs from your lexicon JSON files.
Build custom feeds. Register algorithms, atrg handles the protocol.
Run a label service. Create, sign, and serve labels per the AT Protocol spec.
Dual database backends. Feature-flagged. Production-ready.
Native API key auth, role-based access control, ban system.
Content-addressed S3 + filesystem storage for user content.
Scaffold write server + read aggregator from one workspace.
SMTP email delivery and OTP verification built-in.
Typed dispatch for Jetstream events by collection and operation.
A complete AT Protocol API server in 10 lines of Rust. OAuth login, session management, and JSON API routes — ready to serve your frontend.
atrg.toml drives all configurationuse atrg_core::AtrgApp; mod routes; #[tokio::main] async fn main() -> anyhow::Result<()> { AtrgApp::new() .with_auth_routes(atrg_auth::routes::auth_router()) .mount(routes::api()) .run() .await }
14 focused crates in a Cargo workspace. Use what you need, ignore the rest. Every crate has a single responsibility.
atrg binary
You focus on your app's business logic. atrg handles the AT Protocol plumbing.
Get a working AT Protocol API server in under five minutes.