lib.rs
53 lignes · 2156 octets
//! ActivityPub identity federation for Rustwarden (RFCs 0001–0025). //! //! Provides the discovery layer (WebFinger, Person actor, NodeInfo), //! AP-native authentication flow, cross-instance team invitations, //! lifecycle signals, the outbound delivery worker, and HTTP signatures. //! //! Extracted from `rustwarden-core::fediverse` per //! `docs/plans/2026-05-11-extract-rustwarden-fediverse-crate.md`. //! Consumers add this crate as an optional Cargo dependency rather than //! flipping a `rustwarden-core` feature flag. /// Person actor handler with `Accept` content negotiation. pub mod actor; /// HTTP routes for the AP-native authentication flow (RFC 0013). pub mod auth_routes; /// Federation configuration loaded from environment variables. pub mod config; /// Federation-specific error type, convertible to /// [`AppError`](rustwarden_core::error::AppError). pub mod error; /// HTTP client abstraction used by the remote-identity resolver. pub mod fetcher; /// Mastodon-compatible HTTP signatures (draft-cavage RSA-SHA256, RFC 0015). pub mod http_signatures; /// `POST /inbox` handler dispatching AP lifecycle activities (RFC 0012). pub mod inbox; /// HTTP routes for cross-instance team invitations (RFC 0014). pub mod invite_routes; /// SeaORM entity models for federation tables. pub mod models; /// NodeInfo discovery + 2.1 handlers. pub mod nodeinfo; /// Pluggable runtime observer for federation events (RFC 0028). pub mod observer; /// `LocalUserResolver` trait + SeaORM-backed default implementation. pub mod resolver; /// Router builder: assembles the federation Axum router. pub mod routes; /// Federation business-logic services. pub mod services; /// Shared state injected into federation handlers. pub mod state; /// JSON types serialised on federation endpoints. pub mod types; /// WebFinger handler (RFC 7033). pub mod webfinger; pub use config::{FediverseConfig, FediverseConfigError}; pub use error::FediverseError; pub use fetcher::{RemoteFetcher, UnconfiguredFetcher}; pub use observer::{FediverseEventObserver, NoopFediverseObserver}; pub use resolver::{LocalUserResolver, UserSummary}; pub use state::FediverseState;
GitRust