[package]
name = "composable-tower-http"
version = "0.3.1"
edition = "2021"
authors = ["Jad K. Haddad <jadkhaddad@gmail.com>"]
license = "MIT OR Apache-2.0"
readme = "README.md"
description = "Highly customizable http utilities built on top of tower."
repository = "https://github.com/JadKHaddad/composable-tower-http"
keywords = ["tower", "http", "middleware", "extension", "composable"]
[features]
default = []
axum = ["dep:axum"]
[dependencies]
tower = "0.5.0"
tower-layer = "0.3.0"
tokio = { version = "1.41.1", features = ["sync", "macros"] }
http = "1.1.0"
jsonwebtoken = "9.2.0"
axum = { version = "0.7.9", optional = true }
serde = "1.0.215"
thiserror = "2.0.3"
tracing = "0.1.40"
reqwest = { version = "0.12.7", features = ["json"] }
base64 = "0.22.1"
[dev-dependencies]
tokio = { version = "1.39.3", features = ["full"] }
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
anyhow = "1.0.93"
dotenvy = "0.15.7"
tower-http = { version = "0.6.2", features = ["trace"] }
mockall = "0.13.1"
[[example]]
name = "api_key"
path = "examples/api_key.rs"
required-features = ["axum"]
[[example]]
name = "basic_auth"
path = "examples/basic_auth.rs"
required-features = ["axum"]
[[example]]
name = "map"
path = "examples/map.rs"
required-features = ["axum"]
[[example]]
name = "map_err"
path = "examples/map_err.rs"
required-features = ["axum"]
[[example]]
name = "jwt"
path = "examples/jwt.rs"
required-features = ["axum"]
[[example]]
name = "jwt_email_verified"
path = "examples/jwt_email_verified.rs"
required-features = ["axum"]
[[example]]
name = "jwt_email_verified_lite"
path = "examples/jwt_email_verified_lite.rs"
required-features = ["axum"]
[[example]]
name = "jwt_random_verification"
path = "examples/jwt_random_verification.rs"
required-features = ["axum"]
[[example]]
name = "optional"
path = "examples/optional.rs"
required-features = ["axum"]
[[example]]
name = "any"
path = "examples/any.rs"
required-features = ["axum"]
[[example]]
name = "or"
path = "examples/or.rs"
required-features = ["axum"]
[[example]]
name = "and"
path = "examples/and.rs"
required-features = ["axum"]
[[example]]
name = "or_and"
path = "examples/or_and.rs"
required-features = ["axum"]
[[example]]
name = "jwt_groups"
path = "examples/jwt_groups.rs"
required-features = ["axum"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]