[package]
name = "api-tools"
version = "0.9.0"
authors = ["Fabien Bellanger <valentil@gmail.com>"]
description = "An API tools library for Rust"
edition = "2024"
rust-version = "1.88"
keywords = ["API", "Axum", "Layer", "Metrics", "Tools"]
license = "MIT"
readme = "README.md"
documentation = "https://docs.rs/api-tools"
homepage = "https://github.com/fabienbellanger/api-tools"
repository = "https://github.com/fabienbellanger/api-tools"
[features]
axum = []
default = []
full = ["axum", "prometheus"]
prometheus = ["dep:metrics", "dep:metrics-exporter-prometheus", "dep:sysinfo"]
[dependencies]
thiserror = "2.0.18"
axum = "0.8.9"
http-auth-basic = "0.3.7"
hyper = "1.10.1"
tower = { version = "0.5.3", features = ["util"] }
tower-http = { version = "0.7.0", features = ["cors", "request-id"] }
tracing = "0.1.44"
tracing-opentelemetry = "0.33.0"
opentelemetry = "0.32.0"
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.150"
serde_urlencoded = "0.7.1"
metrics = { version = "0.24.6", optional = true }
metrics-exporter-prometheus = { version = "0.18.3", optional = true }
sysinfo = { version = "0.38.4", optional = true }
bytes = "1.11.1"
bytesize = "2.4.0"
chrono = { version = "0.4.45", features = [
"clock",
"std",
"serde",
], default-features = false }
chrono-tz = "0.10.4"
futures = "0.3.32"
mime = "0.3.17"
tokio = { version = "1.52.3", features = ["full"] }
uuid = { version = "1.23.3", features = ["v4", "serde"] }
jsonwebtoken = { version = "10.4.0", features = ["rust_crypto"] }
[dev-dependencies]
base64 = "0.22.1"
[package.metadata.docs.rs]
all-features = true