[package]
name = "roas-http-validator"
version = "0.2.1"
edition.workspace = true
authors.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
keywords = ["openapi", "validation", "http", "request", "middleware"]
description = "Validates HTTP requests against an OpenAPI description, with adapters for axum, actix-web, poem, salvo and rocket"
readme = "README.md"
categories = ["web-programming", "development-tools::testing"]
include = ["src", "examples", "Cargo.toml", "README.md"]
publish = true
[package.metadata.docs.rs]
all-features = true
[features]
default = []
v3_1 = ["roas/v3_1"]
v3_0 = ["roas/v3_0", "v3_1"]
v2 = ["roas/v2", "v3_0"]
http = ["dep:http"]
reqwest = ["dep:reqwest"]
actix-web = ["dep:actix-web"]
poem = ["dep:poem"]
salvo = ["dep:salvo_core"]
rocket = ["dep:rocket"]
[dependencies]
roas = { version = "0.20", path = "../roas", features = ["v3_2", "exact-numbers"] }
percent-encoding.workspace = true
regex.workspace = true
serde_json = { workspace = true, features = ["arbitrary_precision"] }
thiserror.workspace = true
actix-web = { workspace = true, optional = true }
http = { workspace = true, optional = true }
poem = { workspace = true, optional = true }
reqwest = { workspace = true, optional = true }
rocket = { workspace = true, optional = true }
salvo_core = { workspace = true, optional = true }
[dev-dependencies]
axum.workspace = true
http-body-util.workspace = true
serde_yaml_ng.workspace = true
tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }
tower = { workspace = true, features = ["util"] }
[[example]]
name = "validate"
[[example]]
name = "axum_layer"
required-features = ["http"]
[[example]]
name = "client_check"
required-features = ["reqwest"]