Features
51+ built-in rules
Comprehensive rule library for strings, numbers, dates, emails, URLs, and more.
Zero dependencies
No external packages required. Pure Python validation that works anywhere.
Clean pipe syntax
Define rules as pipe-delimited strings like 'required|email|max:255' for quick setup.
Rule objects
Use rule classes for complex validation when you need more control.
Custom messages
Override default error messages per field or per rule for a polished UX.
Cross-field validation
Validate fields against each other, like confirming passwords match.
Conditional rules
Apply validation rules based on conditions and other field values.
Type coercion
Validates and coerces strings, numbers, booleans, dates, and more.
Extensible
Create custom validation rules with a simple class interface.
Quick example
from nitro_validate import Validator
validator = Validator({
"name": "required|string|min:2|max:100",
"email": "required|email",
"age": "required|integer|min:18",
"website": "url",
"password": "required|min:8",
"password_confirm": "required|same:password",
})
data = {
"name": "Alice",
"email": "alice@example.com",
"age": 25,
"password": "securepass",
"password_confirm": "securepass",
}
result = validator.validate(data)
if result.is_valid:
print("All good!")
else:
print(result.errors)