Skip to main content

High-performance validation and reference data library

Project description

verinum

High-performance validation and reference data library with a compiled Rust core, exposed to Python via PyO3.

  • Identifier validation — IBAN, BIC, credit card, ISBN, ISSN, ISIN, LEI, EAN, EU VAT numbers
  • Reference data — countries, subdivisions, currencies, languages, VAT rates
  • Check digit algorithms — Luhn, Verhoeff, Damm, ISO 7064
  • Offline-first — all validation and lookup works without network access
  • Zero-allocation hot pathsis_valid() functions are standalone, allocation-free implementations in the Rust core

Installation

pip install verinum

Prebuilt wheels are provided for Linux (manylinux + musllinux, x86_64 and aarch64), macOS (Intel and Apple Silicon), and Windows (x64). On other platforms pip will build from the sdist, which requires a Rust toolchain.

Usage

import verinum

# Validators
verinum.iban.is_valid("GB82 WEST 1234 5698 7654 32")   # True
verinum.vat.validate("DE123456789")
# {'is_valid': True, 'compact': 'DE123456789', 'country': 'DE', ...}

verinum.credit_card.validate("4111111111111111")
# {'is_valid': True, 'brand': 'visa', ...}

# Reference data
verinum.countries.get(alpha2="DE")
verinum.currencies.get(code="EUR")
verinum.vat_rates.get("DE")

# Algorithms
verinum.algorithms.luhn_validate("4111111111111111")

# Client (optional wrapper)
from verinum import Client
v = Client()
v.iban.validate("GB82WEST12345698765432")

Validation semantics

  • is_valid(input) — offline format/checksum validation. Fast path, zero allocations. Standalone implementation, not a wrapper around validate().
  • validate(input) — offline structured validation with normalization, typed error codes, and validator-specific metadata.
  • verify(input) — future live registry validation (scaffolded, raises NotImplementedError in v1).

Supported validators

Validator Format Checksum
IBAN Country + check digits + BBAN Mod 97-10
BIC/SWIFT 8 or 11 alphanumeric Structural
Credit Card 12–19 digits Luhn
ISBN ISBN-10 / ISBN-13 Mod 11 / Mod 10
ISSN 8 digits Mod 11
ISIN 12 alphanumeric Luhn (letter expand)
LEI 20 alphanumeric Mod 97-10
EAN EAN-8 / EAN-13 Weighted checksum
EU VAT 28 country formats Country-specific

Links

License

MIT OR Apache-2.0

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

verinum-0.2.0.tar.gz (44.9 kB view details)

Uploaded Source

Built Distributions

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

verinum-0.2.0-cp38-abi3-win_amd64.whl (143.7 kB view details)

Uploaded CPython 3.8+Windows x86-64

verinum-0.2.0-cp38-abi3-musllinux_1_2_x86_64.whl (489.8 kB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ x86-64

verinum-0.2.0-cp38-abi3-musllinux_1_2_aarch64.whl (462.3 kB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

verinum-0.2.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (282.9 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

verinum-0.2.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (286.1 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

verinum-0.2.0-cp38-abi3-macosx_11_0_arm64.whl (249.3 kB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

verinum-0.2.0-cp38-abi3-macosx_10_12_x86_64.whl (250.8 kB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

Details for the file verinum-0.2.0.tar.gz.

File metadata

  • Download URL: verinum-0.2.0.tar.gz
  • Upload date:
  • Size: 44.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for verinum-0.2.0.tar.gz
Algorithm Hash digest
SHA256 f156b412dab6144acb831390392ff5622d5145c02582ecb22cceab0eed101c42
MD5 15fccb625775ee5435f4c5241f2dbad7
BLAKE2b-256 f020e36fed050e94719a8663f587f358826a58e01a9265c1f8219baa9460da9a

See more details on using hashes here.

Provenance

The following attestation bundles were made for verinum-0.2.0.tar.gz:

Publisher: release-python.yml on yanivtoledano/verinum

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file verinum-0.2.0-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: verinum-0.2.0-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 143.7 kB
  • Tags: CPython 3.8+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for verinum-0.2.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6850ca7c9e89e8b6daf8d708ad4db77e89d206eaf71da75ef99b1c53532fa1d2
MD5 7c38146e3d285bf632e391633cdfe6be
BLAKE2b-256 20776218384ff240ee8c9abeb34cbb49e7eaee305dfabb1141dcf1e92da209ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for verinum-0.2.0-cp38-abi3-win_amd64.whl:

Publisher: release-python.yml on yanivtoledano/verinum

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file verinum-0.2.0-cp38-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for verinum-0.2.0-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b9d0d6f8f6614f8e6a65d1dc072bacb2c256abf1fd34c07f8d89a479504b44bf
MD5 95f9cb6eee61bccfcaa68515623a0c46
BLAKE2b-256 ed3b66f7bd542e4b8ca354904eb104122f8fd218f5e6b677fba3f1bf1c91e982

See more details on using hashes here.

Provenance

The following attestation bundles were made for verinum-0.2.0-cp38-abi3-musllinux_1_2_x86_64.whl:

Publisher: release-python.yml on yanivtoledano/verinum

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file verinum-0.2.0-cp38-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for verinum-0.2.0-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d314ed206976e3d2236e388d6b51e64e8372af66073e7bae3df46583931e61e2
MD5 a823b7de80c6bc71bf3cb6207bf03227
BLAKE2b-256 36f4c4f8592b8367d1bf6a3c540421a0d71d804edcea3edf608f129aefa6bd89

See more details on using hashes here.

Provenance

The following attestation bundles were made for verinum-0.2.0-cp38-abi3-musllinux_1_2_aarch64.whl:

Publisher: release-python.yml on yanivtoledano/verinum

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file verinum-0.2.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for verinum-0.2.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4e3aa68e3a0d4c171a959ed3fb4ac6ef31ee0b5c064bf88165bca496542b6ef3
MD5 a20ad33d9316022c9ac6bca0212e32aa
BLAKE2b-256 4bba15687a4bd48170308a4145ef7e2486604c344052cd519525d70ddace16f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for verinum-0.2.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release-python.yml on yanivtoledano/verinum

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file verinum-0.2.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for verinum-0.2.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 27d9b77b48b5aa159945ad13658efc684c09388d9dc75c2ac58cb78b72e25d73
MD5 b6ac5eea3863371c0ef3921f4e37a2e1
BLAKE2b-256 cd7571c1d8dd20bf7429c54b314e8a625d57d7fbf63ec8b31e6c915940adfec4

See more details on using hashes here.

Provenance

The following attestation bundles were made for verinum-0.2.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release-python.yml on yanivtoledano/verinum

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file verinum-0.2.0-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for verinum-0.2.0-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dbbc637da47d02307f825c7fe9e11ca686cb20dc4574bbdd30f8e32b656b2f93
MD5 d1246e2cb14867a01a2d38718761b3fd
BLAKE2b-256 954d080b4de541070b34ce448ba1e5222764977bce04793b2bbe572137156657

See more details on using hashes here.

Provenance

The following attestation bundles were made for verinum-0.2.0-cp38-abi3-macosx_11_0_arm64.whl:

Publisher: release-python.yml on yanivtoledano/verinum

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file verinum-0.2.0-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for verinum-0.2.0-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3752e9a8207bef860af371be9fdb2f7baec879f70c916445a3e9110d739e7fc9
MD5 01bc804bda15245e808b84513d5024f0
BLAKE2b-256 acd9010ac32d3be7d28e6e1aee0d2ae57defda107ec9bf7bb62d5ecc640673a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for verinum-0.2.0-cp38-abi3-macosx_10_12_x86_64.whl:

Publisher: release-python.yml on yanivtoledano/verinum

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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