[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.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"] } # Actix-web actix-web = { version = "4.8.0", default-features = false, optional = true } http02 = { package = "http", version = "0.2.12", optional = true } # Axum axum = { version = "0.7.5", features = ["json"], default-features = false, optional = true } tower = { version = "0.4.13", optional = true } [dev-dependencies] anyhow = "1.0.86" axum = { version = "0.7.5", features = ["macros"] } axum-extra = { version = "0.9.3", features = ["typed-header"] } env_logger = "0.11.3" 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"