[package]
name = "jsonapi_axum"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
description = "axum adapter for jsonapi_core: JSON:API extractors, responders, and tower layers built on jsonapi_http"
documentation = "https://docs.rs/jsonapi_axum"
keywords = ["jsonapi", "json-api", "axum", "web", "rest"]
categories = ["web-programming"]
readme = "README.md"
[dependencies]
jsonapi_core = { path = "../jsonapi_core", version = "1.0.0-rc.1" }
jsonapi_http = { path = "../jsonapi_http", version = "1.0.0-rc.1" }
axum = { version = "0.8", default-features = false }
http = "1"
bytes = "1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tower = { version = "0.5", default-features = false }
http-body = "1"
http-body-util = "0.1"
percent-encoding = "2"
validator = { version = "0.20", optional = true, default-features = false }
anyhow = { version = "1", optional = true }
sqlx = { version = "0.8", optional = true, default-features = false }
uuid = { version = "1", optional = true, default-features = false, features = ["v4"] }
[features]
validator = ["dep:validator"]
anyhow = ["dep:anyhow"]
sqlx = ["dep:sqlx"]
debug-errors = []
uuid = ["dep:uuid"]
atomic-ops = ["jsonapi_core/atomic-ops"]
testing = ["tower/util"]
[dev-dependencies]
tower = { version = "0.5", features = ["util"] }
pollster = "0.4"
axum = { version = "0.8", features = ["tokio", "http1"] }
tokio = { version = "1", features = ["rt-multi-thread", "macros", "net"] }
tower-http = { version = "0.6", features = ["request-id"] }
[lints]
workspace = true
[package.metadata.docs.rs]
rustdoc-args = ["--cfg", "docsrs"]