api-tools 0.9.1

An API tools library for Rust
Documentation
[package]
name = "api-tools"
version = "0.9.1"
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]

# Errors
thiserror = "2.0.18"

# API Server
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", "limit"] }

# Logs
tracing = "0.1.44"
tracing-opentelemetry = "0.33.0"
opentelemetry = "0.32.0"

# Serde
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.150"
serde_urlencoded = "0.7.1"

# Metrics
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.12.0"
bytesize = "2.4.2"
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.4", features = ["v4", "serde"] }
jsonwebtoken = { version = "10.4.0", features = ["rust_crypto"] }

[dev-dependencies]
base64 = "0.22.1"

[package.metadata.docs.rs]
all-features = true