[package] name = "activitypub_federation" version = "0.6.1" edition = "2021" description = "High-level Activitypub framework" keywords = ["activitypub", "activitystreams", "federation", "fediverse"] license = "AGPL-3.0" repository = "https://github.com/LemmyNet/activitypub-federation-rust" documentation = "https://docs.rs/activitypub_federation/" [features] default = ["actix-web", "axum"] actix-web = ["dep:actix-web", "dep:http02"] axum = ["dep:axum", "dep:tower"] diesel = ["dep:diesel"] [lints.rust] warnings = "deny" deprecated = "deny" [lints.clippy] perf = { level = "deny", priority = -1 } complexity = { level = "deny", priority = -1 } dbg_macro = "deny" inefficient_to_string = "deny" items-after-statements = "deny" implicit_clone = "deny" wildcard_imports = "deny" cast_lossless = "deny" manual_string_new = "deny" redundant_closure_for_method_calls = "deny" unwrap_used = "deny" [dependencies] chrono = { version = "0.4.39", features = ["clock"], default-features = false } serde = { version = "1.0.217", features = ["derive"] } async-trait = "0.1.84" url = { version = "2.5.4", features = ["serde"] } serde_json = { version = "1.0.134", features = ["preserve_order"] } reqwest = { version = "0.12.12", default-features = false, features = [ "json", "stream", "rustls-tls", ] } reqwest-middleware = "0.4.0" tracing = "0.1.41" base64 = "0.22.1" rand = "0.8.5" rsa = "0.9.7" once_cell = "1.20.2" http = "1.2.0" sha2 = { version = "0.10.8", features = ["oid"] } thiserror = "2.0.9" derive_builder = "0.20.2" itertools = "0.14.0" dyn-clone = "1.0.17" enum_delegate = "0.2.0" httpdate = "1.0.3" http-signature-normalization-reqwest = { version = "0.13.0", default-features = false, features = [ "sha-2", "middleware", "default-spawner", ] } http-signature-normalization = "0.7.0" bytes = "1.9.0" futures-core = { version = "0.3.31", default-features = false } pin-project-lite = "0.2.15" activitystreams-kinds = "0.3.0" regex = { version = "1.11.1", default-features = false, features = [ "std", "unicode", ] } tokio = { version = "1.42.0", features = [ "sync", "rt", "rt-multi-thread", "time", ] } diesel = { version = "2.2.6", features = [ "postgres", ], default-features = false, optional = true } futures = "0.3.31" moka = { version = "0.12.9", features = ["future"] } # Actix-web actix-web = { version = "4.9.0", default-features = false, optional = true } http02 = { package = "http", version = "0.2.12", optional = true } # Axum axum = { version = "0.8.1", features = ["json"], default-features = false, optional = true } tower = { version = "0.5.2", optional = true } [dev-dependencies] anyhow = "1.0.95" axum = { version = "0.8.1", features = ["macros"] } axum-extra = { version = "0.10.0", features = ["typed-header"] } env_logger = "0.11.6" tokio = { version = "1.42.0", features = ["full"] } [profile.dev] strip = "symbols" debug = 0 [[example]] name = "local_federation" path = "examples/local_federation/main.rs" [[example]] name = "live_federation" path = "examples/live_federation/main.rs"