api-tools 0.6.6

An API tools library for Rust
Documentation
[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]

# Errors
thiserror = "2.0.17"

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

# Logs
tracing = "0.1.44"
tracing-opentelemetry = "0.32.1"
opentelemetry = "0.31.0"

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

# Metrics
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