Skip to main content

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


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.1.4.tar.gz (42.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

dhi-1.1.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (224.0 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

dhi-1.1.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (226.6 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

dhi-1.1.4-cp313-cp313t-macosx_13_0_arm64.whl (81.4 kB view details)

Uploaded CPython 3.13tmacOS 13.0+ ARM64

dhi-1.1.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (191.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

dhi-1.1.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (192.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

dhi-1.1.4-cp313-cp313-macosx_13_0_arm64.whl (79.9 kB view details)

Uploaded CPython 3.13macOS 13.0+ ARM64

dhi-1.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (191.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

dhi-1.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (192.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

dhi-1.1.4-cp312-cp312-macosx_13_0_arm64.whl (79.9 kB view details)

Uploaded CPython 3.12macOS 13.0+ ARM64

dhi-1.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (186.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

dhi-1.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (188.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

dhi-1.1.4-cp311-cp311-macosx_13_0_arm64.whl (79.8 kB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

dhi-1.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (183.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

dhi-1.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (184.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

dhi-1.1.4-cp310-cp310-macosx_13_0_arm64.whl (79.8 kB view details)

Uploaded CPython 3.10macOS 13.0+ ARM64

dhi-1.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (182.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

dhi-1.1.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (183.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

dhi-1.1.4-cp39-cp39-macosx_13_0_arm64.whl (79.7 kB view details)

Uploaded CPython 3.9macOS 13.0+ ARM64

File details

Details for the file dhi-1.1.4.tar.gz.

File metadata

  • Download URL: dhi-1.1.4.tar.gz
  • Upload date:
  • Size: 42.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for dhi-1.1.4.tar.gz
Algorithm Hash digest
SHA256 b6c7afb33b2adc22eb2fec296f5b9121f9ce766ded6ae981e35e20b58a667f67
MD5 563548895cc3855070bcaff1f6cf6059
BLAKE2b-256 07cd0c19ed46d54471a5ba3af701f08ea715240fb6a20537f379e97ef6016105

See more details on using hashes here.

File details

Details for the file dhi-1.1.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dhi-1.1.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cfffb4aff72add2d3d04ee428077af8b1500f14f45eaf502400450135fb0228a
MD5 a03adf136305beb94f59f593d4bfa75e
BLAKE2b-256 615c9fff7be30043e6883c7f2fef2dd91a9bbcd609d253997fca7fa793793112

See more details on using hashes here.

File details

Details for the file dhi-1.1.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for dhi-1.1.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 192cac109f9cf21ab41bdf6f37d068103fd38775230e7fa1f65c8c6a0a48d1e5
MD5 c71ce1a9861dfd93dd9c5bae07acfcad
BLAKE2b-256 eb8a91f62b6a6fa3130457f26d28ce4299109561ca7853c918e33715690a20b1

See more details on using hashes here.

File details

Details for the file dhi-1.1.4-cp313-cp313t-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for dhi-1.1.4-cp313-cp313t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 a951608e381ec0a4aa28bd199871133544a1b94faa34bbdfe55162310422973e
MD5 9bb3e7ae8beba54a08c16770141fdd38
BLAKE2b-256 a897aca87dd4e018f0661744019761e2da1595f65c0958dadb600f24d98806db

See more details on using hashes here.

File details

Details for the file dhi-1.1.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dhi-1.1.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c45859f58e5ed0ee2864428e8d0c6127c0c83c695c10f483e742f4723b4b1360
MD5 e25ac7d3518f6d7818921c0f8fa6562f
BLAKE2b-256 7a269f6fba4e256f77661642a7cc1a037fa839d6ff835e57018681115918ce0c

See more details on using hashes here.

File details

Details for the file dhi-1.1.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for dhi-1.1.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9183b230d7d68a0989dbd43d73f21e0737ea043cd79979ee343850ed117018cd
MD5 10de9972960d72f7f1653aa7fc1a33f3
BLAKE2b-256 3c60699199345c9b0a2070fd7724d338a59e9d8fec90ffd7e9a9083c805bc99b

See more details on using hashes here.

File details

Details for the file dhi-1.1.4-cp313-cp313-macosx_13_0_arm64.whl.

File metadata

  • Download URL: dhi-1.1.4-cp313-cp313-macosx_13_0_arm64.whl
  • Upload date:
  • Size: 79.9 kB
  • Tags: CPython 3.13, macOS 13.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for dhi-1.1.4-cp313-cp313-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 a9424d726c3cdb9da55943a0a4a32bdb0229b488f62d594b9bada543eb0a7d2f
MD5 49de34e471a3c71526a4f9b96508ee21
BLAKE2b-256 ca94b13006e7d52d20711e75c6e4c745e466fc17d547ff2c743485f7c02c9b1d

See more details on using hashes here.

File details

Details for the file dhi-1.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dhi-1.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4d37a36eb4c443964d6d0816a91f6868d6c8729c3c112260e2adfa414edbcf9e
MD5 dc84b12a7524cf7e09057da7340e42a6
BLAKE2b-256 2bd7cce030bf01d6abd14cb1490e8e6234a197b5c2c3de623ae56bf8a8ca20a4

See more details on using hashes here.

File details

Details for the file dhi-1.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for dhi-1.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1ab4f5be1f1ac23f084776d5db493267c008f9e36ac514eee2ac195af6dc35cc
MD5 d9aeee3545026e8ab56facca64f66c35
BLAKE2b-256 3ea1b1e230fe7290c2fb4fbc57f72894f593d6824e27a0b42ca61cb9862cf74e

See more details on using hashes here.

File details

Details for the file dhi-1.1.4-cp312-cp312-macosx_13_0_arm64.whl.

File metadata

  • Download URL: dhi-1.1.4-cp312-cp312-macosx_13_0_arm64.whl
  • Upload date:
  • Size: 79.9 kB
  • Tags: CPython 3.12, macOS 13.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for dhi-1.1.4-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 bde7dbc867bf52200a4d1252ff111a54b0d24d3658415e0ba4b648bbdefbac17
MD5 14d96715cfecb5c8c374b9c612f88b89
BLAKE2b-256 0727be0a9076d25086893baa72a79cdd106eca2495fdb6db622d2d79def195f9

See more details on using hashes here.

File details

Details for the file dhi-1.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dhi-1.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 48025da41038dc94e9752ace674337430f22ba7141f5cc2c00ee78a47a15af8a
MD5 ad4334726bd44f6f652e061e93a0d267
BLAKE2b-256 b9ba264eb859950cae2f42cc56ca3a5692c3e30db86cae9968431e10b6b4fad9

See more details on using hashes here.

File details

Details for the file dhi-1.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for dhi-1.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8b63d580befe468d930a5f8c104c44642d8f8c0c151747eafef877bf4a74fd13
MD5 51b8030f5e4b1eddc6c5edacdcc31f17
BLAKE2b-256 fb488c53fa6526628c09de6ee7fa0517a5b48ca4e1aba8ffcd133ce84e93c65d

See more details on using hashes here.

File details

Details for the file dhi-1.1.4-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

  • Download URL: dhi-1.1.4-cp311-cp311-macosx_13_0_arm64.whl
  • Upload date:
  • Size: 79.8 kB
  • Tags: CPython 3.11, macOS 13.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for dhi-1.1.4-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 365d7f98e91e436c9fbb41ae8a76507979a851ee7ae882d42f67cc8a4518c91e
MD5 3634dde2a0cfe85fde330841f1e86d1a
BLAKE2b-256 309ff46f9ffcbc70eccd3c26737d48ab5fe1b35bea0ba4c44484db7d0ce94b3c

See more details on using hashes here.

File details

Details for the file dhi-1.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dhi-1.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 95bd51b7a0972011bcfc475e5efad963f2579add0fbd4ddb89d972bb7f6a3ff8
MD5 ab1bd7736dcad642916ef663a9e86819
BLAKE2b-256 32fb38d07644de98aedcd22c3b0aff815af6fa1eb5971f92b44456dc8433471f

See more details on using hashes here.

File details

Details for the file dhi-1.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for dhi-1.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 98f0b6dece28cddfd5a6426f46c4081b194b8144284049098c72d30134c2d320
MD5 6f05850e7ceaa8bffcc71f1c0f8d335e
BLAKE2b-256 12525fdfb2f7fa6c26b73556ff84300238ff3438b71f599781a36240b1584bc2

See more details on using hashes here.

File details

Details for the file dhi-1.1.4-cp310-cp310-macosx_13_0_arm64.whl.

File metadata

  • Download URL: dhi-1.1.4-cp310-cp310-macosx_13_0_arm64.whl
  • Upload date:
  • Size: 79.8 kB
  • Tags: CPython 3.10, macOS 13.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for dhi-1.1.4-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 bad2db385d40e20dc3c6bca50294fc816d8ad09f1de076c9367702a46d58f5c4
MD5 ad89e24ec60bc5d2da8ec80a3d039346
BLAKE2b-256 37c15d36089537445ab7ab6b41c250c08dcb17f4e639db49bd9f5349644d63b2

See more details on using hashes here.

File details

Details for the file dhi-1.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dhi-1.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 be6c2520574a1dbd2cf3986dd6fd8249578e1b7712224f93ffb4ba34fcb341d3
MD5 905031d26b8f930163bf03fc0338f895
BLAKE2b-256 600a6ea9d5683bbc0d0bea0acdd3f8e3a0c4dd227b5a03ed337d92b269abaa18

See more details on using hashes here.

File details

Details for the file dhi-1.1.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for dhi-1.1.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8a5bee048f4bd6ceb586e77603b75ed62ee872326454ac5fb8f6956d07be22bb
MD5 032ef02e190d946ad0b1342cf206b3e9
BLAKE2b-256 fd1b214d772d9636b545c3bcebfe4aeb6f05706c4f6114c08bc94902e2f41b24

See more details on using hashes here.

File details

Details for the file dhi-1.1.4-cp39-cp39-macosx_13_0_arm64.whl.

File metadata

  • Download URL: dhi-1.1.4-cp39-cp39-macosx_13_0_arm64.whl
  • Upload date:
  • Size: 79.7 kB
  • Tags: CPython 3.9, macOS 13.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for dhi-1.1.4-cp39-cp39-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 e47c1d016a60687899baa5a10afbe7030b4a7ef35a182efc091ce5adcbb31d6e
MD5 42d8735644a65a2b1159e3656acb12a5
BLAKE2b-256 742d4411a42cc1318931704de7bdeea2682074765fab277c6bc41df477c04ef6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page