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', ...}

# Flat convenience aliases
verinum.is_valid_iban("GB82 WEST 1234 5698 7654 32")
verinum.validate_vat("DE123456789")

# 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.1.1.tar.gz (43.1 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.1.1-cp38-abi3-win_amd64.whl (143.4 kB view details)

Uploaded CPython 3.8+Windows x86-64

verinum-0.1.1-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.1.1-cp38-abi3-musllinux_1_2_aarch64.whl (461.9 kB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

verinum-0.1.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (282.7 kB view details)

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

verinum-0.1.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (285.8 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

verinum-0.1.1-cp38-abi3-macosx_11_0_arm64.whl (249.1 kB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

verinum-0.1.1-cp38-abi3-macosx_10_12_x86_64.whl (250.7 kB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for verinum-0.1.1.tar.gz
Algorithm Hash digest
SHA256 b0754c31491368250a9bb30879d8d4e0dd57d37e9eef92d0e5384d470f7b6602
MD5 a71d0a8ec2e3d6aa8b37fee8b8e792b2
BLAKE2b-256 4eb6c102609caf0397e72f0f541e0150590b57de1d3039abc60ab82f037b73a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for verinum-0.1.1.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.1.1-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: verinum-0.1.1-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 143.4 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.1.1-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 eb32ca798acb3668ab9b633f2e3e9a6210612860924a7dc8ad124aa9c07b4054
MD5 34178ece3408759cb3c8f163f89103cf
BLAKE2b-256 2b02dade0bf424109836999e86ff6776bd1918cb20ab3e0e88973f91226e4290

See more details on using hashes here.

Provenance

The following attestation bundles were made for verinum-0.1.1-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.1.1-cp38-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for verinum-0.1.1-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5deec8d51afc6d48df8e8a04c2dd4c228bd38fc324d102215019dac8920637c8
MD5 04aceaf0932d44dc0e0c49cba55e8c1c
BLAKE2b-256 10628cbaaf7d8161a144a3d3814e800f575c61bf149c4075694efc3305862fed

See more details on using hashes here.

Provenance

The following attestation bundles were made for verinum-0.1.1-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.1.1-cp38-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for verinum-0.1.1-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 87f977b008f95eddfaa6a6ac4250a07f8a0b32046e94ae00ef64421409fd3277
MD5 0f3d1ef02b2f673c1e4eb36d598931c8
BLAKE2b-256 6c96a23384f59e143da7947251d0cf3aa6b2829c2fe7ee5b815b60c415592063

See more details on using hashes here.

Provenance

The following attestation bundles were made for verinum-0.1.1-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.1.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for verinum-0.1.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 68d4c8899fcc008ef5c3ba58c121e66ab2b2c5d5a505ab671827061effb4b664
MD5 23ca00e913af5cbb06e12f875d69f3f9
BLAKE2b-256 cf14b68476880babce2ca670625c510ad73abb52cb67b67fa54987ad23e91110

See more details on using hashes here.

Provenance

The following attestation bundles were made for verinum-0.1.1-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.1.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for verinum-0.1.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 86213433f5abafc4b9a600ecfae8879132157d557e8258e2fcd6396576c31e2d
MD5 2dca1fbf365285865f0ecaf709c6f857
BLAKE2b-256 485451c0edfffee2cc0bd724189770d694ff6cddc4a6dd60331aac7dd1e858a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for verinum-0.1.1-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.1.1-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for verinum-0.1.1-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3c2d121c0768802deaeecb31d5319507c696e54117c686c7b04355e42a92c8fd
MD5 be08d02198e99961a9d5d8041ffd4ad3
BLAKE2b-256 7b606cd6513d1f1ae5094523c88776383aa368662144c825b07bab7618477846

See more details on using hashes here.

Provenance

The following attestation bundles were made for verinum-0.1.1-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.1.1-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for verinum-0.1.1-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4c9627a898875741cd26d188eebaafc15bce950eb3c3669853f7dedb2bf28b6c
MD5 a306a77d119b7e3ef7300c179288f653
BLAKE2b-256 fa0b4200293bef351d0f5d9a10df2a3bbdc87546d8357ad833b2330beb49bc6f

See more details on using hashes here.

Provenance

The following attestation bundles were made for verinum-0.1.1-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