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.3.tar.gz (115.8 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.3-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.3-cp311-abi3-manylinux_2_28_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.28+ ARM64

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

Uploaded CPython 3.11+macOS 11.0+ ARM64

vacant-0.4.3-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.3.tar.gz.

File metadata

  • Download URL: vacant-0.4.3.tar.gz
  • Upload date:
  • Size: 115.8 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.3.tar.gz
Algorithm Hash digest
SHA256 9ddd1ccd9a3fbff2c15cd1758887ff0ef5806e133eb974aa57a6eb8343133a62
MD5 31e7a6486829a4779c1c3c42d0ddd314
BLAKE2b-256 8eea4c0193a877b09cca78fbe41dd58d69da98ac4ae27246640d8507e7dbc4d2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for vacant-0.4.3-cp311-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 56115d97ff4990c35cd4f50dcb2c1f7b4a3b6a89d5f7ab6ff370727b6d1d424d
MD5 d04a4651c26e98030c64415e69819e7e
BLAKE2b-256 3acb337b321b1d394ef2730044f216edb3ee0283e2cb806374cec02aa67964a3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for vacant-0.4.3-cp311-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d09adb776e5449cfb6f6d2e19eb59373877226a1c4fad858de8f1cb77bed9425
MD5 f82becf02831dc02b7942de3ee6da5b4
BLAKE2b-256 65ecf304f8de7662222c4597496b7e299fd09112d2d55b3c1d79566504fb8f25

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for vacant-0.4.3-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0e1ec0c9b2b1260c5e9e09eb6a8b5c190f943decbc3183043f2861a8c8d843df
MD5 f7cff99bbbb9e2a143ccf1c3225f5de2
BLAKE2b-256 e99603c8a88ba51fb2af9fbbef507192d06f3bab430140011a0dc7294c5749cb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for vacant-0.4.3-cp311-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 483763399c9ac2b88aaedfeea42da6291b94c9de7f5aab6268d3834e023811bb
MD5 57bcdfa6f3bc130e45d89f248a37306b
BLAKE2b-256 edc734c2a87a041029f195bb7c67c3b1ecb22e468a04a5baa18ab6da5baccee8

See more details on using hashes here.

Provenance

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