Ultra-fast data validation for Python - 28M validations/sec, 3x faster than Rust alternatives
Project description
dhi - Ultra-Fast Data Validation for Python
The fastest data validation library for Python. Powered by Zig for maximum performance.
🚀 Performance
28 million validations/sec - 3x faster than satya (Rust), 3x faster than msgspec (C)
# Validate 10,000 users in 0.36ms
from dhi import _dhi_native
users = [{"name": "Alice", "email": "alice@example.com", "age": 25}, ...]
field_specs = {
'name': ('string', 2, 100),
'email': ('email',),
'age': ('int_positive',),
}
results, valid_count = _dhi_native.validate_batch_direct(users, field_specs)
# 28M users/sec! 🔥
✨ Features
- �� Fastest: 3x faster than satya (Rust) and msgspec (C)
- 🎯 24+ Validators: Email, URL, UUID, IPv4, dates, numbers, strings
- 🔋 Zero Python Overhead: C extension extracts directly from dicts
- 🌍 General Purpose: Works with any dict structure
- 💪 Production Ready: Thoroughly tested and benchmarked
📦 Installation
pip install dhi
🎯 Quick Start
from dhi import _dhi_native
users = [
{"name": "Alice", "email": "alice@example.com", "age": 25},
{"name": "Bob", "email": "bob@example.com", "age": 30},
]
field_specs = {
'name': ('string', 2, 100),
'email': ('email',),
'age': ('int_positive',),
}
results, valid_count = _dhi_native.validate_batch_direct(users, field_specs)
print(f"Valid: {valid_count}/{len(users)}")
�� Available Validators
String: email, url, uuid, ipv4, base64, iso_date, iso_datetime, string
Number: int, int_gt, int_gte, int_lt, int_lte, int_positive, int_non_negative, int_multiple_of
🏆 Benchmarks
dhi: 28M users/sec 🥇
satya: 9M users/sec (3.0x slower)
msgspec: 9M users/sec (3.1x slower)
📝 License
MIT License - see LICENSE file
🔗 Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
dhi-1.0.0.tar.gz
(22.4 kB
view details)
File details
Details for the file dhi-1.0.0.tar.gz.
File metadata
- Download URL: dhi-1.0.0.tar.gz
- Upload date:
- Size: 22.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
176c666c1af3820629bec76ec77787323cf7cb16b1458fd750cda1e41ee3aaeb
|
|
| MD5 |
871b7d7ed934029efe7aab3f0bf18b10
|
|
| BLAKE2b-256 |
9f88548bdd9c77623ad1fc8c71db7fd45c3eace0aa90494c4cc21225f31c0f29
|