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.4.tar.gz (115.9 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.4-cp311-abi3-manylinux_2_28_x86_64.whl (5.2 MB view details)

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

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

Uploaded CPython 3.11+manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.11+macOS 11.0+ ARM64

vacant-0.4.4-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.4.tar.gz.

File metadata

  • Download URL: vacant-0.4.4.tar.gz
  • Upload date:
  • Size: 115.9 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.4.tar.gz
Algorithm Hash digest
SHA256 6993cf12806cae14eccbdf5b0911f6549af66980fa956efb0c0d533d308b92f6
MD5 493ebbf6f83a76d10a6da5d8c9b0bc6d
BLAKE2b-256 ef4ab405874959642e456e8c0173e49f173158b7fa26d3c702c4409272ec3d5e

See more details on using hashes here.

Provenance

The following attestation bundles were made for vacant-0.4.4.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.4-cp311-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for vacant-0.4.4-cp311-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8999ed54d01164747663d39dc21957db4d28f2ee90720c7622f91fdabf426baf
MD5 6f611bb15a93a46f9a31e987ed5bae8d
BLAKE2b-256 41aa475b19aebfaaa01ec3f9452e07ceaf461cb0924e22f20bde8671e91e69d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for vacant-0.4.4-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.4-cp311-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for vacant-0.4.4-cp311-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0fba6c2ef92be03cca8efcfb99cbe47b47f320fd63e84a71b0a532209255b275
MD5 94866e39c22f10162680a93eaaded71d
BLAKE2b-256 494367ae9e0064109762327cb8be6b7b5159bb487359dee14b842964ea983a61

See more details on using hashes here.

Provenance

The following attestation bundles were made for vacant-0.4.4-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.4-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for vacant-0.4.4-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b4c9396ea7b07f2341f857c74177f2b0464d0e43c7437f3a044abef377c677ff
MD5 20859fce98d93c2c31b11fcd1f81524f
BLAKE2b-256 edc86cee499d0c9ff7a21c57edc543176dee05e108f86c502bf9eaa2c6103ad7

See more details on using hashes here.

Provenance

The following attestation bundles were made for vacant-0.4.4-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.4-cp311-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for vacant-0.4.4-cp311-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2f1221cf1b7db4a4b395a4cb3a164f7c2d36497b596008f5580de0337af254c1
MD5 0cc83fcd12c715ead3136e48177b4e0d
BLAKE2b-256 413a4418871000fea644bbe695e6e0b7aa841d663e04aa84b202bd2ea702ce9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for vacant-0.4.4-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