This release is a pre-release and may not be stable for production use.
zclick
Python command-line interfaces backed by Rust and zclap. Import the public API
as import zclick as click, including the matching zclick.core, zclick.types,
zclick.testing and zclick.shell_completion submodules.
The fixed compatibility target is Click 8.5.1, source commit
cf19179.
The versioned documentation, API inventory and original tests are pinned in
compatibility/target.json. The implementation uses
registry zclap 0.1.4, PyO3 0.30.1 and Rust 1.99.1 / Edition 2024.
This is a preview release; the complete compatibility target is not yet met. CPython subinterpreters are currently unsupported and are explicitly rejected at native module initialization. The locked PyO3 binding has Python object caches that are not partitioned by interpreter. See the open compatibility record. Stable publication is blocked while an open compatibility gap remains.
Compatibility evidence · 0.1.1a1 measurements · 0.1.1a2 measurements · Architecture · Build and release · 中文交付记录
Installation and a first command
This source tree prepares the 0.1.1a2 preview. The release locations are PyPI and GitHub Releases. The fixed-version installation command for this preview is:
python -m pip install zclick==0.1.1a2
To select the latest available preview instead:
pip install --pre zclick
The previous 0.1.1a1 publication is recorded in its distribution verification.
Source installation requires Rust 1.99.1 and the platform build tools.
Ordinary CPython wheels support Python 3.10 and newer; PyPy and free-threaded CPython
require their corresponding wheels or an interpreter-specific source build.
The intended stable installation is pip install zclick once the outstanding
compatibility gate is satisfied.
import zclick as click
@click.command()
@click.option("--count", default=1, type=int, help="Number of greetings.")
@click.option("--name", prompt="Your name", help="The person to greet.")
def hello(count, name):
for _ in range(count):
click.echo(f"Hello, {name}!")
if __name__ == "__main__":
hello()
Migration
Replace import click with import zclick as click. Replace submodule imports,
for example from click.testing import CliRunner, with
from zclick.testing import CliRunner.
The wheel installs the zclick namespace. It has no third-party Python runtime
requirements, does not install a top-level click package, and does not
redirect another package's imports. Original Click is only a development and
comparison dependency.
A third-party extension that imports Click internally continues to use Click. Its classes and context stack require separate migration. The extension compatibility report reproduces this boundary with locked releases of click-didyoumean, click-plugins and click-repl, including their original-Click control runs. Changing an application's import alias does not automatically migrate those extensions.
Compatibility and performance
The release gate requires the complete 33,459-case official test collection, including 31,000 stress cases, with the same test IDs and original platform skip/expected-failure conditions. It additionally checks 196 public objects and their members, the 12 upstream typing examples, native property and differential tests, and real Bash, Zsh, Fish and PowerShell completion. Results are tied to an immutable implementation commit; configured platforms are not reported as passing until their jobs succeed. See COMPATIBILITY.md and the CI runs.
The 0.1.1a2 performance report compares Click 8.5.1, the published zclick 0.1.1a1 wheel and the frozen candidate in twelve balanced rounds on one Linux CPython 3.12 host. Selected median wall-time ratios are shown below; a ratio above one means lower candidate latency.
| Workload | Click / 0.1.1a2 | 0.1.1a1 / 0.1.1a2 |
|---|---|---|
| Reused parser, 1,000 options | 1.236× | 2.535× |
| Full warm invocation, 1,000 options | 1.771× | 1.042× |
| Warm help, 1,000 options | 1.214× | 1.283× |
| Unicode/ANSI wrapping | 7.404× | 1.113× |
| Full warm invocation, 1 option | 0.973× | 1.012× |
| Nested command | 0.886× | 1.096× |
Reused parsing with 1, 10 and 100 options also remains slower than Click. The 1.042× full-invocation change over a1 is small and has overlapping samples; it is not a large new gain over that release. All eight fresh-process command and help medians were lower in this run, but the retained outliers prevent a claim that every startup is faster. The report includes all eighteen warm workloads, eight cold workloads, import timing, variability and memory.
The published baseline and candidate used different wheel build environments
(manylinux_2_17 and host-built manylinux_2_34), so the entire difference cannot
be attributed to source changes alone. Candidate worker peak RSS was also
higher: 25.492 MiB versus Click's 24.059 MiB and a1's 25.107 MiB. Results are
specific to these workloads and distributions; no universal speedup or
zero-allocation claim is made. The historical a1 report
remains available with its original data and method.
Examples
| Example | Behavior |
|---|---|
hello.py |
Decorators, options, prompting and output |
pipeline.py |
Chained commands, context state and result callbacks |
workspace.py |
A custom type, arbitrary-size integers, context resources, environment defaults and completion |
python examples/hello.py --count 2 --name Ada
python examples/pipeline.py --text 'hello world' uppercase replace WORLD Rust
python examples/workspace.py --prefix demo convert 0x10000000000000000
Shell completion setup covers the source/complete protocols and the scope of actual shell-engine validation.
Development
Use Python 3.10 or newer and the pinned Rust toolchain. Create a virtual environment, install Maturin and the test dependencies, then build the extension:
python -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements-dev.txt
maturin develop --release --locked
python -m pytest tests
python scripts/run_compatibility.py
Use the development guide for complete stress verification, cross-platform builds, dependency audits, reproducible benchmarks and version bumps. The release workflow builds and installs the actual wheels before publishing them.
Architecture
Python objects preserve decorators, custom subclasses, callbacks and ordinary
Python values. The native extension validates current definitions before reusing
an immutable parsing schema; every call has its own execution state.
The Rust core performs token recognition through zclap, applies Click argument
consumption rules, schedules parameters and formats text. Rust also drives
command groups and parser actions through Python's current methods. The core uses
no_std with alloc; its only direct third-party dependency is zclap. The
extension uses PyO3 and the Rust standard library.
The Python interface accepts mutations between invocations. Each parser or command retains at most its most recent owned Rust schema. Defaults, environment values, callbacks and contexts are evaluated anew. User callbacks run without a native lock or borrowed mutable parser state. Python integer conversion uses Python integers rather than fixed-width Rust integers. Input strings preserve surrogate code points at the binding boundary.
CliRunner changes interpreter streams, environment variables and sometimes the
working directory. Use separate processes for concurrent runner tests.
The project implementation is MIT licensed. Distribution notices for the generated Click API declarations, Rust dependencies and standard library are listed in THIRD_PARTY_LICENSES.md.
Metadata
Release files for zclick 0.1.1a2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| zclick-0.1.1a2.tar.gz | 227.3 kB | With provenance | Details for zclick-0.1.1a2.tar.gz |
Built distributions (wheels)
Total release size: 8.1 MB
Release files / zclick-0.1.1a2.tar.gz
| Download URL | zclick-0.1.1a2.tar.gz |
|---|---|
| Size | 227.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ebeb4a952f188edcd2289f099f919d004fd2897add914cd7569b9732b27ae877
|
|
BLAKE2b-256 checksum How to use checksums |
0abe6d97172ee831467bcb793fb893b54960efd862571533bcd872af1ac10924
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logRelease files / zclick-0.1.1a2-pp312-pypy312_pp80-manylinux_2_34_x86_64.whl
| Download URL | zclick-0.1.1a2-pp312-pypy312_pp80-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 634.7 kB |
| Tags | Linux glibc 2.34+ x86-64 PyPy 3.12 PyPy 3.12 8.0 |
|
SHA-256 checksum How to use checksums |
c73246215b4969c7dcf603969a9da18908fd75a6f1a50a1632559db1fe917fc8
|
|
BLAKE2b-256 checksum How to use checksums |
d442c9a157a90bf846035b9eed90ba43fe5f9b7c3cf3bed2d941b8f2454c6f99
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logRelease files / zclick-0.1.1a2-pp311-pypy311_pp80-manylinux_2_34_x86_64.whl
| Download URL | zclick-0.1.1a2-pp311-pypy311_pp80-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 635.6 kB |
| Tags | Linux glibc 2.34+ x86-64 PyPy 3.11 PyPy 3.11 8.0 |
|
SHA-256 checksum How to use checksums |
61e17f6b5c801f9bf46d56385716ab22df0369792aba083d3796238e6d9515ac
|
|
BLAKE2b-256 checksum How to use checksums |
a9c94ff8c55bca7c09b79ad2ff6bb7635e5706165e7d37521e5aa986e555bf03
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logRelease files / zclick-0.1.1a2-cp315-cp315t-manylinux_2_34_x86_64.whl
| Download URL | zclick-0.1.1a2-cp315-cp315t-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 650.9 kB |
| Tags | CPython 3.15 CPython 3.15 free-threading Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
a0ca120be8518181a9cd886b4c3f772f52f1be327f4eca911322ebbd343afc5a
|
|
BLAKE2b-256 checksum How to use checksums |
326c25812ce27a02ef69ad66e566359cd911fc07e6d03900b7142fa033fe3726
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logRelease files / zclick-0.1.1a2-cp314-cp314t-manylinux_2_34_x86_64.whl
| Download URL | zclick-0.1.1a2-cp314-cp314t-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 651.0 kB |
| Tags | CPython 3.14 CPython 3.14 free-threading Linux glibc 2.34+ x86-64 |
|
SHA-256 checksum How to use checksums |
cc47dc715506323b67585d0d550bfce0bf85b0ccc845472377c363881eaff7e8
|
|
BLAKE2b-256 checksum How to use checksums |
bdde61e89ad4bda15178093bd17fddc06b5f27f2f659c873fc6164fdc06e97ee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logRelease files / zclick-0.1.1a2-cp310-abi3-win_arm64.whl
| Download URL | zclick-0.1.1a2-cp310-abi3-win_arm64.whl |
|---|---|
| Size | 526.4 kB |
| Tags | CPython 3.10 Windows ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
fef6ce2b2a8affb342519f42e5bae1348b906fe6c0c9bd75f7f18d970e66159b
|
|
BLAKE2b-256 checksum How to use checksums |
6ef5d6b2b11ec0101cf12feb47e8264a739ff5a8d5250ada3d50d810b64940b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logRelease files / zclick-0.1.1a2-cp310-abi3-win_amd64.whl
| Download URL | zclick-0.1.1a2-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 536.2 kB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
17727a9519392ae69187fcda7de57ff54fbd695359b9af235fc3eb981565945b
|
|
BLAKE2b-256 checksum How to use checksums |
3dc97ff97280bd005a9914d72d9f717e1409f5eb7701f550861636f053fd1617
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logRelease files / zclick-0.1.1a2-cp310-abi3-musllinux_1_2_x86_64.whl
| Download URL | zclick-0.1.1a2-cp310-abi3-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 871.5 kB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
d7d051fbae80ef35f8a0a8bf472ca8b7837a8f258b739e6a1c3dad77f5a78c79
|
|
BLAKE2b-256 checksum How to use checksums |
9ccab159e547ec50e589b80d5a582e72f81cef93a90cb0ad1912977f5da2544b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logRelease files / zclick-0.1.1a2-cp310-abi3-musllinux_1_2_aarch64.whl
| Download URL | zclick-0.1.1a2-cp310-abi3-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 828.9 kB |
| Tags | CPython 3.10 Linux musl 1.2+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
bf32da47ee0e788d681af5cb07d8a7155a86757c0f82fad8d0c1c1dbce91f97f
|
|
BLAKE2b-256 checksum How to use checksums |
6e7e96b940faff4c3feda0c21900b533b139c11e1ea47f1f3b28b342443b60b7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logRelease files / zclick-0.1.1a2-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
| Download URL | zclick-0.1.1a2-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl |
|---|---|
| Size | 658.5 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
dd69bc1b014559a0c77319f52334811951e49fb134f916a3e76f5b7abd493a0c
|
|
BLAKE2b-256 checksum How to use checksums |
5204e6aedfe36b67cd4ea04281eaed5ecabb785d8856ce54aa22c02adad00b11
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logRelease files / zclick-0.1.1a2-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
| Download URL | zclick-0.1.1a2-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl |
|---|---|
| Size | 649.3 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
860b5b4299cd6d640c081ffa0e6e9803aa1a3cd323fcc6d3e540d6931a311762
|
|
BLAKE2b-256 checksum How to use checksums |
236352a397db66ab3ee36fad319715b3b812efc8f2209b16ab884605a47f951f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logRelease files / zclick-0.1.1a2-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | zclick-0.1.1a2-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 623.2 kB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
98a235572c69015f3045fc8556a24c0e860fa30958974eed684a67caa6867e74
|
|
BLAKE2b-256 checksum How to use checksums |
80917ef8e050c0617016cd345f126d793a307b8986058dd05c250a41540b8dae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logRelease files / zclick-0.1.1a2-cp310-abi3-macosx_10_12_x86_64.whl
| Download URL | zclick-0.1.1a2-cp310-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 630.0 kB |
| Tags | CPython 3.10 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
7a38540778c040f9d4121c91d2faa2d5fa86841a9c3f8b96cb07694b5c9146c3
|
|
BLAKE2b-256 checksum How to use checksums |
92d40f788a1fc13abd3aaf7f4056c455168595e20c88dbe4ea79b0238e7194a5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logSecurity for zclick 0.1.1a2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 13 files in this release have been uploaded with provenance metadata.
Attestation for zclick-0.1.1a2.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 11, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.