Skip to main content

Python bindings for the vacant Rust engine — domain availability via authoritative DNS.

Project description

vacant — domain availability via authoritative DNS

PyPI crates.io

Python bindings for the vacant Rust engine. Asks the authoritative TLD nameservers directly instead of WHOIS — fast, no rate limits, no waiting.

The wheel ships the same Rust engine compiled in, with a small Python facade and a vacant CLI entry point. Lockstep-versioned with the vacant crate: vacant 0.3.x (Python) wraps vacant 0.3.x (Rust) exactly.

Install

Pick the path that matches how you'll use it:

CLI

brew install alltuner/tap/vacant   # macOS, Linux — native Rust binary
cargo install vacant               # any platform with a Rust toolchain
uvx vacant google.com              # one-shot, no install (Python wheel)

The brew / cargo paths give you the native Rust binary (instant startup, ideal for daily use). uvx runs the Python wheel — convenient when you don't want to install anything, slightly slower to start because it boots a Python interpreter.

Library

pip install vacant
# or with uv:
uv add vacant
from vacant import check_many, Status

results = check_many(["example.com", "anthropic.com", "totally-made-up-zxqv.cat"])
for r in results:
    print(r.domain, r.status.value, r.detail)

The on-disk SQLite cache is shared with the Rust CLI — runs against the same ~/.cache/vacant/results.db, so the brew binary and a Python script see each other's results.

from vacant import DiskCache, check_many

cache = DiskCache()  # default ~/.cache/vacant/results.db
results = check_many(["example.com"], cache=cache)

How it works

vacant.check_many calls into the Rust engine via PyO3 (vacant._core). The engine:

  1. Normalizes the input.
  2. Looks up cache; returns hits immediately.
  3. Runs a per-zone precheck (length, charset, reserved labels) from the bundled rules.toml.
  4. For inputs that pass, asks the parent zone's NS directly. NXDOMAIN → available; delegation → registered; ambiguous answers fall back to RDAP.

Cache shape, rules format, and verdict semantics are all the engine's — see alltuner/vacant for the source of truth.

Develop

The Python package lives in the alltuner/vacant monorepo alongside the Rust engine, so dev commands run from the repo root:

just                 # menu
just py-develop      # build the maturin extension into the local venv
just py-check        # ruff + pytest
just py-wheel        # build a release wheel locally

License

MIT — see ../LICENSE.

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

vacant-0.4.2.tar.gz (115.6 kB view details)

Uploaded Source

Built Distributions

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

vacant-0.4.2-cp311-abi3-manylinux_2_28_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.28+ x86-64

vacant-0.4.2-cp311-abi3-manylinux_2_28_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.28+ ARM64

vacant-0.4.2-cp311-abi3-macosx_11_0_arm64.whl (4.6 MB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

vacant-0.4.2-cp311-abi3-macosx_10_12_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.11+macOS 10.12+ x86-64

File details

Details for the file vacant-0.4.2.tar.gz.

File metadata

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

File hashes

Hashes for vacant-0.4.2.tar.gz
Algorithm Hash digest
SHA256 0fb5f5908567db425a032eab7307657fc99d11c5757c1c52c9d398e3683746a6
MD5 648d3688fe797c98b2f9e06a670d512c
BLAKE2b-256 39c5f17a678d9c4a7b84735620784f394f68a37a7ccc355358f280a388fec612

See more details on using hashes here.

Provenance

The following attestation bundles were made for vacant-0.4.2.tar.gz:

Publisher: release.yml on alltuner/vacant

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

File details

Details for the file vacant-0.4.2-cp311-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vacant-0.4.2-cp311-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e5ad26628893f248c5b9a2b0dbe4e3752c6c0545c38c1a1b198dbe17fc299f74
MD5 6bd26a2ca655d157b9c535679b9ba27d
BLAKE2b-256 9634ed145fa1ae1d93bf6dea86693a28f8578eea4389e4c53e21d391f3c2d166

See more details on using hashes here.

Provenance

The following attestation bundles were made for vacant-0.4.2-cp311-abi3-manylinux_2_28_x86_64.whl:

Publisher: release.yml on alltuner/vacant

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

File details

Details for the file vacant-0.4.2-cp311-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for vacant-0.4.2-cp311-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 691f58d5f85c0ebf669cb19b543a6999be541d7d6b7b6e800004bc90a6ce2ef3
MD5 3b4adefc2145c0c241a5b0b00436aec4
BLAKE2b-256 b8a83f71ca8c92ae6c52f54ff3d78b3911705f428c3e525ac27e0e9bc5953dd8

See more details on using hashes here.

Provenance

The following attestation bundles were made for vacant-0.4.2-cp311-abi3-manylinux_2_28_aarch64.whl:

Publisher: release.yml on alltuner/vacant

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

File details

Details for the file vacant-0.4.2-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vacant-0.4.2-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4fb8fb73fecfb962917d9342ee7d521eaaa0dc9e667afd6fba79dccd9a0b9b8d
MD5 b4d2f66fd343647102679560b125deb1
BLAKE2b-256 1e9766dd136679dca946a8a200338de0dda3d1de6d7fded0d788fdb0d5eb0370

See more details on using hashes here.

Provenance

The following attestation bundles were made for vacant-0.4.2-cp311-abi3-macosx_11_0_arm64.whl:

Publisher: release.yml on alltuner/vacant

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

File details

Details for the file vacant-0.4.2-cp311-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for vacant-0.4.2-cp311-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f1d6774c04afb5ef122f45092f372f3b62383647c1d9facf4bf0b199bb884708
MD5 6843b4bb515a617547c57a601483e5da
BLAKE2b-256 00149f11e5f61d93c2617bdb142726c6957e60bb8f24a2db0a9101ba431a1753

See more details on using hashes here.

Provenance

The following attestation bundles were made for vacant-0.4.2-cp311-abi3-macosx_10_12_x86_64.whl:

Publisher: release.yml on alltuner/vacant

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