[package] name = "activitypub_federation" version = "0.5.8" 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 = ["axum"] axum = [ "dep:axum", "dep:axum-extra", "dep:tower", "dep:hyper", "dep:http-body-util", ] 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.38", features = ["clock"], default-features = false } serde = { version = "1.0.204", features = ["derive"] } async-trait = "0.1.81" url = { version = "2.5.2", features = ["serde"] } serde_json = { version = "1.0.120", features = ["preserve_order"] } reqwest = { version = "0.12.5", default-features = false, features = [ "json", "stream", "rustls-tls", ] } reqwest-middleware = "0.3.2" tracing = "0.1.40" base64 = "0.22.1" rand = "0.8.5" rsa = "0.9.6" once_cell = "1.19.0" http = "1.1.0" sha2 = { version = "0.10.8", features = ["oid"] } thiserror = "1.0.62" derive_builder = "0.20.0" itertools = "0.13.0" dyn-clone = "1.0.17" enum_delegate = "0.2.0" httpdate = "1.0.3" http-signature-normalization-reqwest = { version = "0.12.0", default-features = false, features = [ "sha-2", "middleware", "default-spawner", ] } http-signature-normalization = "0.7.0" bytes = "1.6.1" futures-core = { version = "0.3.30", default-features = false } pin-project-lite = "0.2.14" activitystreams-kinds = "0.3.0" regex = { version = "1.10.5", default-features = false, features = [ "std", "unicode", ] } tokio = { version = "1.38.0", features = [ "sync", "rt", "rt-multi-thread", "time", ] } diesel = { version = "2.2.1", features = [ "postgres", ], default-features = false, optional = true } futures = "0.3.30" moka = { version = "0.12.8", features = ["future"] } # Axum axum = { version = "0.7.5", features = [ "json", ], default-features = false, optional = true } axum-extra = { version = "0.9.3", features = ["typed-header"], optional = true } tower = { version = "0.4.13", optional = true } hyper = { version = "1.4.1", optional = true } http-body-util = { version = "0.1.2", optional = true } [dev-dependencies] anyhow = "1.0.86" env_logger = "0.11.3" tower-http = { version = "0.5.2", features = ["map-request-body", "util"] } axum = { version = "0.7.5", features = [ "http1", "tokio", "query", ], default-features = false } axum-macros = "0.4.1" tokio = { version = "1.38.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"