[workspace]
members = [
".",
"validation_derive"
]
[package]
name = "validy"
version = "1.1.13"
edition = "2024"
description = "A powerful and flexible Rust library based on procedural macros for validation, modification, and DTO (Data Transfer Object) handling. Designed to integrate seamlessly with Axum. Inspired by Validator, Validify and Garde."
license = "MIT"
repository = "https://github.com/L-Marcel/validy"
readme = "readme.md"
keywords = ["validation", "axum", "derive", "input-validation", "macros"]
categories = ["web-programming", "data-structures", "parsing"]
exclude = [".github/", ".gitignore", "expand.sh", "tests/"]
[dependencies]
validation_derive = { path = "validation_derive", version = "1.1.4", optional = true }
email_address = { version = "0.2.9", optional = true }
serde = { version = "1.0.228", features = ["derive"], optional = true }
async-trait = "0.1.89"
regex = { version = "1.12.2", optional = true }
moka = { version = "0.12.12", features = ["sync"], optional = true }
heck = { version = "0.5.0", optional = true }
chrono = { version = "0.4.42", optional = true }
axum = { version = "0.8.8", optional = true }
pretty_assertions = { version = "1.4.1", optional = true }
axum_typed_multipart = { version = "0.16.5", optional = true }
parking_lot = "0.12.5"
uuid = { version = "1.19.0", optional = true }
[features]
all = [
"derive", "macro_rules", "macro_rules_assertions", "validation",
"modification", "email", "pattern", "ip", "time", "axum", "axum_multipart",
"uuid"
]
default = ["derive", "macro_rules", "validation", "modification"]
macro_rules = []
macro_rules_assertions = ["dep:pretty_assertions"]
derive = ["dep:validation_derive", "dep:serde"]
validation = []
modification = ["dep:heck"]
email = ["dep:email_address"]
pattern = ["dep:moka", "dep:regex"]
ip = []
time = ["dep:chrono"]
uuid = ["dep:uuid"]
axum = ["dep:axum", "derive", "validation_derive/axum"]
axum_multipart = ["axum", "dep:axum_typed_multipart", "validation_derive/axum_multipart"]
[dev-dependencies]
futures-util = "0.3.31"
http-body-util = "0.1.3"
serde_json = "1.0.149"
tempfile = "3.24.0"
tokio = { version = "1.49.0", features = ["macros", "rt"] }
tower = "0.5.3"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]