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.0.tar.gz (39.4 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.0-cp38-abi3-win_amd64.whl (141.2 kB view details)

Uploaded CPython 3.8+Windows x86-64

verinum-0.1.0-cp38-abi3-musllinux_1_2_x86_64.whl (488.0 kB view details)

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

verinum-0.1.0-cp38-abi3-musllinux_1_2_aarch64.whl (458.2 kB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

verinum-0.1.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (280.3 kB view details)

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

verinum-0.1.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (282.1 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

verinum-0.1.0-cp38-abi3-macosx_11_0_arm64.whl (246.7 kB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

verinum-0.1.0-cp38-abi3-macosx_10_12_x86_64.whl (248.1 kB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: verinum-0.1.0.tar.gz
  • Upload date:
  • Size: 39.4 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.0.tar.gz
Algorithm Hash digest
SHA256 2e66cb85a316d9ed1cca09032ff4a2fa7c0463fcdc77b6c8417216e9ac160197
MD5 0ff15521665981c9fbd23f3b831710c6
BLAKE2b-256 fed7020a53e93429672fada4e9175da3d3c2c66ccc9f86231b4ea9fb011090ac

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: verinum-0.1.0-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 141.2 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.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 43b47631320f6129347526027ebe2c337236daa5aa754af77be35b760275185b
MD5 4e6b070841718139c6678e6e5d0f12b2
BLAKE2b-256 9e1c4129731a3c11a4e5f4a88412a267aa02e6aa5e837e99cc2760afb3e8b6b7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for verinum-0.1.0-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 29fd2d3795c028918daee963ea44a7d4532a28586ced14f3b87c5fe1360ceb1b
MD5 1464e0bb1239a48c7d57390429353902
BLAKE2b-256 cd9d66253c4fd6651f886edab6519de86311c780367a7516cc0f2b9eeb89d021

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for verinum-0.1.0-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0a8e7798fd91bf4fdfd36cc6de31358c1cda86285bc0fd326a1dc1212e042417
MD5 ad26585754bea7b2ef3fb730a173f0ce
BLAKE2b-256 8c4e566a1a1e2920e827891f20c59518054031156d512898a2ea0ff8a9ce1113

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for verinum-0.1.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b8a50c6960ff1bad267d451dcb135638514d03057112ac1989f24e84fedf3e10
MD5 b30daf9d5278ce91ca26301c614d4aeb
BLAKE2b-256 a2dd138740809b732a473d1e57b582082f08504d2e20e563f1b0fb711badac84

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for verinum-0.1.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a09c9117d03881a2d68191f277cf5f39184909331dfba621ab31478555fb8455
MD5 c7e69976d1b8148e247f73d641de2c45
BLAKE2b-256 edf237640788c6d1040aa17e8ac3ad40d388226da69abba431dc5ed345fb85c8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for verinum-0.1.0-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3f963d465bb93fd8f9fe37ed8b5489526f603e272a43971d80c5282df76596c5
MD5 e1f1980cb40a3a016febe009dbfd8805
BLAKE2b-256 9d699ee6534af9bca34698e73e1dafeb4667a480e170cd4aa24a246c4c84dd92

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for verinum-0.1.0-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 72eb1752517dd953e0937dfc2e75189722c80d9a6d16df9ce6aace05d36fd756
MD5 1f1fceed68daff76cd9f0a420de15b72
BLAKE2b-256 165e8f0ef1890f54fc59e29434ed3190be262dc4a837fe4cecf0f59d637a640d

See more details on using hashes here.

Provenance

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