[package]
name = "axum-api-kit"
version = "1.2.0"
edition = "2021"
rust-version = "1.75"
authors = ["Rod Mendoza <rodmendoza07@gmail.com>"]
description = "Shared response types for Axum JSON APIs: ApiError, ListResponse, and HealthResponse"
license = "MIT"
repository = "https://github.com/rodmen07/axum-api-kit"
homepage = "https://github.com/rodmen07/axum-api-kit"
documentation = "https://docs.rs/axum-api-kit"
keywords = ["axum", "api", "rest", "response", "http"]
categories = ["web-programming::http-server", "web-programming"]
readme = "README.md"

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

[features]
default = []
validator = ["dep:validator", "validator/derive"]
sqlx = ["dep:sqlx"]
extract = ["axum/query"]
trace = ["dep:tracing", "dep:uuid"]
router = []
cors = ["dep:tower-http"]
openapi = ["dep:utoipa"]

[dependencies]
axum = { version = "0.8", default-features = false, features = ["json"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
http = "1"
validator = { version = "0.18", optional = true }
sqlx = { version = "0.8", default-features = false, optional = true }
tracing = { version = "0.1", optional = true }
uuid = { version = "1", features = ["v4"], optional = true }
tower-http = { version = "0.6", features = ["cors"], optional = true }
utoipa = { version = "5", optional = true }

[dev-dependencies]
tokio = { version = "1", features = ["macros", "rt"] }
tower = { version = "0.5", features = ["util"] }
