[package]
name = "api-tools"
version = "0.6.6"
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.17"
axum = "0.8.8"
http-auth-basic = "0.3.5"
hyper = "1.8.1"
tower = { version = "0.5.3", features = ["util"] }
tower-http = { version = "0.6.8", features = ["cors", "fs", "request-id", "util", "set-header"] }
tracing = "0.1.44"
tracing-opentelemetry = "0.32.1"
opentelemetry = "0.31.0"
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.149"
serde_urlencoded = "0.7.1"
metrics = { version = "0.24.3", optional = true }
metrics-exporter-prometheus = { version = "0.18.1", optional = true }
sysinfo = { version = "0.37.2", optional = true }
bytes = "1.11.0"
bytesize = "2.3.1"
chrono = { version = "0.4.42", features = ["clock", "std", "serde"], default-features = false }
chrono-tz = "0.10.4"
futures = "0.3.31"
mime = "0.3.17"
tokio = { version = "1.49.0", features = ["full"] }
uuid = { version = "1.19.0", features = ["v4", "serde"] }
jsonwebtoken = { version = "10.2.0", features = ["rust_crypto"] }
[dev-dependencies]
base64 = "0.22.1"
[package.metadata.docs.rs]
all-features = true