1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
//! # solid-pod-rs-activitypub
//!
//! ActivityPub federation (Actor, inbox, outbox, HTTP Signatures,
//! NodeInfo) for [`solid-pod-rs`](https://crates.io/crates/solid-pod-rs).
//!
//! ## Modules
//!
//! - [`actor`] — Actor document rendering and RSA keypair generation.
//! - [`inbox`] — Inbox handler with HTTP-Signature verification dispatch.
//! - [`outbox`] — Outbox handler with Create/Follow/Delete activity persistence.
//! - [`delivery`] — Background federated-delivery worker with exponential-backoff retry.
//! - [`http_sig`] — Draft-cavage-12 `rsa-sha256` HTTP Signature sign/verify.
//! - [`discovery`] — NodeInfo 2.1 and WebFinger discovery endpoints.
//! - [`store`] — SQLite-backed persistence for followers, inbox, outbox, delivery queue.
//! - [`error`] — [`SigError`], [`InboxError`], [`OutboxError`].
//!
//! ## Quick start
//!
//! ```rust,ignore
//! use solid_pod_rs_activitypub::store::Store;
//!
//! // Connect to (or create) the SQLite-backed AP store.
//! let store = Store::connect("sqlite:ap.db").await?;
//!
//! // Check if a remote actor follows the local pod.
//! let is_following = store.is_follower("local-pod", "https://remote.example/actor").await?;
//! ```
//!
//! ## Relationship to core
//!
//! AP federation pulls in RSA (2048-bit keypairs, `rsa-sha256`
//! signatures) and a persistent follower store, neither of which the
//! core `solid-pod-rs` crate needs for pods that don't federate.
//! Keeping federation in a sibling crate keeps the core lean.
//!
//! HTTP Signatures use draft-cavage v12 (what the fediverse actually
//! speaks), not RFC 9421. Core's Ed25519-based
//! `solid_pod_rs::notifications::signing` is a different protocol.
// ---- Flat re-export surface -------------------------------------------------
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;