Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

pytest-boorst

Experimental Rust-powered acceleration for pytest.

This alpha accelerates duplicate parameter-ID bookkeeping and repeated directory discovery while pytest keeps control of test collection, fixtures, execution, and reporting. Acceleration is opt-in and guarded by a tested pytest version and implementation fingerprint. See the measured results.

Try the alpha

From your project directory, with its test dependencies already installed in its virtual environment, install from PyPI and run with uv:

uv pip install --no-deps pytest-boorst==0.1.0a7
uv run --no-sync pytest --boorst -q tests/

Or, with your project's virtual environment activated, use pip:

python -m pip install --no-deps pytest-boorst==0.1.0a7
pytest --boorst -q tests/

Both work in POSIX shells and PowerShell. Use your usual pytest arguments in place of -q tests/, or omit them to use your project's configured test selection. --no-deps preserves your installed pytest and other dependencies. --boorst enables guarded acceleration for that pytest run, using your existing configuration and leaving your lockfile unchanged.

Native wheels cover macOS Intel/ARM64, Windows x86-64/x86/ARM64, and Linux glibc/musl on x86-64/x86/ARM64. See the platform matrix. Other platforms can install the universal Python wheel: it retains the guarded directory optimization on supported Linux/macOS environments and uses stock IDs.

Boorst stays disabled when --boorst is omitted and PYTEST_BOORST=1 is unset. Use -p no:boorst to prevent plugin loading; uninstalling the package restores ordinary pytest behavior. If plugin autoload is disabled, load it explicitly with pytest -p boorst --boorst -q tests/.

The environment variable PYTEST_BOORST=1 and the portable module command python -m pytest_boorst also enable acceleration for existing integrations.

GitHub releases trigger the full CI matrix, then publish its tested distributions to PyPI using Trusted Publishing. Release assets contain the same wheels, source distribution and SHA-256 manifest.

Compatibility boundary

The parameter-ID adapter currently accelerates pytest 9.0.2, 9.0.3, and 9.1.1 on CPython 3.10–3.14 with the GIL enabled. It checks the original method's source fingerprint before changing it and restores its owned patch at session cleanup. Other pytest versions, modified methods, and missing or unloadable native extensions use stock parameter IDs. Installation does not require changing an already-installed pytest version. On older releases without pytest's Stash API, the plugin falls back quietly.

Only duplicate batches of at least 64 resolved, exact ASCII strings enter Rust. Small batches, unique IDs, Unicode, string subclasses, hidden IDs, and strict-ID errors use pytest behavior. Pytest still resolves custom IDs and calls user hooks exactly once. Unexpected native computation errors propagate rather than rerunning callbacks or hiding a bug.

On pytest 9.1.1, CPython 3.10–3.14, Linux and macOS, directory discovery can reuse successful reports for directories with at least 32 distinct .py files passed as plain arguments. Groups may be interleaved across several directories; smaller groups retain stock discovery. Selected parent directories must not contain one another. This Python optimization avoids recreating every sibling collector for each requested file. It needs no native extension and does not change the arguments, import unrequested tests, or replace file collection.

Directory reuse requires verified stock directory methods and discovery/report hooks. Custom discovery/report hooks, modified methods, selectors, duplicate paths, symlinks, overlapping parent directories, doctest-module mode, last-failed/failed-first modes, and debug tracing use stock discovery. Changed hooks, plugins, or collection options stop reuse; changed directory metadata invalidates the report. Windows currently uses stock discovery. Plugins inspecting discarded collectors or pytest's private collection-cache layout are outside this experimental compatibility boundary.

This uses a narrowly guarded private pytest method. The tested compatibility boundary does not establish compatibility with every possible third-party plugin or modification of pytest internals. Tests cover ordered IDs, phase outcomes, coverage, asyncio, xdist, callbacks, errors, and repeated invocation.

On releases with the Stash API, the header reports activation or fallback. The summary reports native ID batches, stock batches, and reused directory reports. Counters are per process; xdist workers collect their own batches, so the controller can report zero native calls.

Development

Install uv and Rust, then:

uv sync --locked --python 3.14
uv run --no-sync maturin develop --release --locked
uv run --no-sync ruff check .
uv run --no-sync ruff format --check .
uv run --no-sync pytest
cargo fmt --check
cargo clippy --locked --all-targets -- -D warnings
cargo test --locked --lib

uv.lock and Cargo.lock pin the development environments. Maturin builds the PyO3 extension. GitHub CI installs built wheels and tests Python 3.10–3.14 on Linux, plus macOS and Windows smoke coverage, and rebuilds the source distribution. The Linux Python 3.12 wheel lane also runs the complete suite and installed-wheel smoke checks with pytest 9.0.2 and 9.0.3, and verifies stock fallback on pytest 8.4.2. Normal wheel-installation checks preserve pytest 6.2.5 and 7.4.4 in separate environments and compare fallback IDs and phase outcomes against stock pytest. An independent benchmark job retains raw timings and CPU/memory observations.

Performance evidence

Measured on Ubuntu 24.04, CPython 3.14.8, pytest 9.1.1 and Boorst 0.1.0a2. Times are medians of three fresh full pytest runs, including startup, collection, fixtures and execution. Percentages use unrounded medians.

Synthetic workload Stock pytest Boorst enabled Time change
10,000 duplicate parameter IDs 8.491 s 6.685 s 21.3% less
10,000 colliding numeric-suffix IDs 8.291 s 6.495 s 21.7% less
384 explicit sibling test files 7.755 s 1.003 s 87.1% less
10,000 unique IDs (control) 6.526 s 6.511 s 0.2% less
8 IDs (control) 0.244 s 0.248 s 1.7% more
Optimization Why it helps
Duplicate-ID bookkeeping Avoids rebuilding the used-ID set for every collision; PyO3 accelerates the bounded helper.
Directory-report reuse Reuses a successful sibling-collector listing across file arguments, avoiding repeated scans and collector construction. This optimization uses Python.

Most ID savings come from the algorithm: the optimized Python comparison took 6.739 s for duplicate IDs, versus 6.685 s with Rust. The isolated helper took 6.40 ms in Python and 4.34 ms in Rust; helper timings describe only that component. Unique and small controls made zero native calls. Ordinary suites can see little benefit or overhead; these synthetic results do not predict overall project CI.

Both harnesses verify exact ordered node IDs, setup/call/teardown outcomes and exit codes. The ID harness checks parity before timing; the discovery harness includes identical receipt recording during timing and disables bytecode writes for both modes. CI requires at least 10% duplicate-workload improvement and 5% directory-workload improvement. Separate compatibility tests cover callbacks, fixtures, errors, coverage, asyncio, xdist and fallback behavior. Multi-directory checks include interleaved groups, directory-local fixtures, syntax errors, independent directory invalidation and stock fallback for overlapping groups.

Sources: ID measurements, directory measurements, and the successful CI run.

Alpha 4 also covers independent sibling groups. A macOS ARM64 / CPython 3.14.7 / pytest 9.1.1 trial with the universal wheel measured three fresh full runs:

Additional synthetic workload Stock pytest Boorst enabled Time change
384 files across four directories 1.963 s 0.973 s 50.4% less

Raw measurements record exact ordered-ID, phase and exit-code parity, with 380 directory reuses and zero native ID calls per run. This measures the Python discovery optimization. Alpha 3 uses stock discovery for this multi-directory plan. CI repeats the four-directory workload on Python 3.14.8 and retains its own raw receipt.

The benchmark job uses CPython 3.14.8. Existing projects can keep their own Python version; the module command uses their existing environment.

Reproduce with Python 3.14 and a release build:

uv sync --locked --python 3.14
uv run --no-sync maturin develop --release --locked
uv run --no-sync python benchmarks/run.py --size 10000 --repeats 3
uv run --no-sync python benchmarks/discovery.py --repeats 3
uv run --no-sync python benchmarks/discovery.py --directories 4 --repeats 3 --output benchmark-results-multiple-directories.json

See benchmark methodology for detailed compatibility controls and earlier public-project measurements.

Metadata

Release files for pytest-boorst 0.1.0a7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pytest-boorst 0.1.0a7
File Size Uploaded
pytest_boorst-0.1.0a7.tar.gz 76.6 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for pytest-boorst 0.1.0a7
File
pytest_boorst-0.1.0a7-py3-none-any.whl Python 3 none any Details
pytest_boorst-0.1.0a7-cp310-abi3-win_arm64.whl CPython 3.10 abi3 Windows ARM64 Details
pytest_boorst-0.1.0a7-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
pytest_boorst-0.1.0a7-cp310-abi3-win32.whl CPython 3.10 abi3 Windows x86-32 Details
pytest_boorst-0.1.0a7-cp310-abi3-musllinux_1_2_x86_64.whl CPython 3.10 abi3 Linux musl 1.2+ x86-64 Details
pytest_boorst-0.1.0a7-cp310-abi3-musllinux_1_2_i686.whl CPython 3.10 abi3 Linux musl 1.2+ x86-32 Details
pytest_boorst-0.1.0a7-cp310-abi3-musllinux_1_2_aarch64.whl CPython 3.10 abi3 Linux musl 1.2+ ARM64 Details
pytest_boorst-0.1.0a7-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details
pytest_boorst-0.1.0a7-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-32 Details
pytest_boorst-0.1.0a7-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details
pytest_boorst-0.1.0a7-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details
pytest_boorst-0.1.0a7-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details

Total release size: 7.8 MB

Release files / pytest_boorst-0.1.0a7.tar.gz

Download URL pytest_boorst-0.1.0a7.tar.gz
Size 76.6 kB
Tags Source
SHA-256 checksum
How to use checksums
d1a289c4a1ab6f4afc2aee7ccca99d0451dd88607944ba76db715875e58fcb27
BLAKE2b-256 checksum
How to use checksums
573cfadb1bef4ebf2773a153a3ea2815474171ec78c853e88eb2db86a541841a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 8, 2026.

Transparency log

Release files / pytest_boorst-0.1.0a7-py3-none-any.whl

Download URL pytest_boorst-0.1.0a7-py3-none-any.whl
Size 12.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
79ea5b8dc46d922965c2af1f216596d4fa8debba726c9f71491f72b066812ec7
BLAKE2b-256 checksum
How to use checksums
0ced477ec4c0669650676b51d4d11518747511ae9c107da20064611f08831286
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 8, 2026.

Transparency log

Release files / pytest_boorst-0.1.0a7-cp310-abi3-win_arm64.whl

Download URL pytest_boorst-0.1.0a7-cp310-abi3-win_arm64.whl
Size 119.2 kB
Tags CPython 3.10 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
53c3de1aa8ec216a07cb44c27bf269c7e2d2a10ef1e556ade7312ce4d4a0a504
BLAKE2b-256 checksum
How to use checksums
1ca36afeecd5680bdb55076279c93a6b12c03cba09cbae9f46a26763c950ba13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 8, 2026.

Transparency log

Release files / pytest_boorst-0.1.0a7-cp310-abi3-win_amd64.whl

Download URL pytest_boorst-0.1.0a7-cp310-abi3-win_amd64.whl
Size 120.1 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
d8078e39eac4fed193bf36efc3a56a8504e23e58929ca00e719af6d8c1a77786
BLAKE2b-256 checksum
How to use checksums
f6fdd5157f8cce7d5c3864f9604918e4a31f30f442087933e10e03d6b180f48c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 8, 2026.

Transparency log

Release files / pytest_boorst-0.1.0a7-cp310-abi3-win32.whl

Download URL pytest_boorst-0.1.0a7-cp310-abi3-win32.whl
Size 115.3 kB
Tags CPython 3.10 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
809fd2277238267757f4b46a91c78baa7b25f637c02b78b5eddf92966ecf2bc3
BLAKE2b-256 checksum
How to use checksums
48ce5db14ee5d20a75cb583c5ab02c4aba658c8d36807020673c1323c23d2f03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 8, 2026.

Transparency log

Release files / pytest_boorst-0.1.0a7-cp310-abi3-musllinux_1_2_x86_64.whl

Download URL pytest_boorst-0.1.0a7-cp310-abi3-musllinux_1_2_x86_64.whl
Size 1.1 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
fc4966089202937e8cb6d2f25142fbed0edd4d2bc6edde5f847ae3b0fec3c9a2
BLAKE2b-256 checksum
How to use checksums
de984e3956acf02492ec484b1d1c618155723834c035f098f1c831af4b87c972
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 8, 2026.

Transparency log

Release files / pytest_boorst-0.1.0a7-cp310-abi3-musllinux_1_2_i686.whl

Download URL pytest_boorst-0.1.0a7-cp310-abi3-musllinux_1_2_i686.whl
Size 1.3 MB
Tags CPython 3.10 Linux musl 1.2+ x86-32 abi3
SHA-256 checksum
How to use checksums
27fc5e304611fba469d41fefb2bde6bc7ada20037170ffec8f8580c2cf170c4f
BLAKE2b-256 checksum
How to use checksums
77d4145658d07af2a089c4aba9ad34f88c821d2e5b9730bf786051d0c685c5e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 8, 2026.

Transparency log

Release files / pytest_boorst-0.1.0a7-cp310-abi3-musllinux_1_2_aarch64.whl

Download URL pytest_boorst-0.1.0a7-cp310-abi3-musllinux_1_2_aarch64.whl
Size 1.1 MB
Tags CPython 3.10 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
c269e9e29fc8501da095569a595ba327952982ca5ddb5e8aa149a541fc34f288
BLAKE2b-256 checksum
How to use checksums
69a827172c3b888a364c0e48221e8bf60e468987e715042aafb8ba256260516e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 8, 2026.

Transparency log

Release files / pytest_boorst-0.1.0a7-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pytest_boorst-0.1.0a7-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.2 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
62d61e77e6270f903bd4c97905f5518de3b935e17b0efc5a7917c1c72bc493ce
BLAKE2b-256 checksum
How to use checksums
c468115b31f0a67aa89a6ee059f96bddf1ebafe8ed31a948ed4cab672aff51eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 8, 2026.

Transparency log

Release files / pytest_boorst-0.1.0a7-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL pytest_boorst-0.1.0a7-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Size 1.1 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-32 abi3
SHA-256 checksum
How to use checksums
2852888675a0e23326050e100b9cb00860706095ff8f20ad0573708d7778766a
BLAKE2b-256 checksum
How to use checksums
458039faaf284083dc55638e60f46da0cd7f72954de08185fbbf0ce4f660f81b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 8, 2026.

Transparency log

Release files / pytest_boorst-0.1.0a7-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL pytest_boorst-0.1.0a7-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.0 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
c465f9b898d764dc464966fe898d3f76715feab817d42dd1a6eda192197cd8b9
BLAKE2b-256 checksum
How to use checksums
d12749f93cce6b7f7438bab13132112797915cf420c8c5b995e786c12b506b65
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 8, 2026.

Transparency log

Release files / pytest_boorst-0.1.0a7-cp310-abi3-macosx_11_0_arm64.whl

Download URL pytest_boorst-0.1.0a7-cp310-abi3-macosx_11_0_arm64.whl
Size 233.9 kB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
75ff3e2fd01ad491e93bc7849406fabc021a8b94b9a11a91fda07d69ca0afcc4
BLAKE2b-256 checksum
How to use checksums
075db70d878d82efbfc6e5fec33fe3dfeb4507ed68a41269d8879635191fe45b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 8, 2026.

Transparency log

Release files / pytest_boorst-0.1.0a7-cp310-abi3-macosx_10_12_x86_64.whl

Download URL pytest_boorst-0.1.0a7-cp310-abi3-macosx_10_12_x86_64.whl
Size 233.0 kB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
8eb2d8b0289ec5fa79c002aeecf84f9c38e61b3bed9300ac16e230ec9ad940bf
BLAKE2b-256 checksum
How to use checksums
aed3f865f879e398cf40dd3109bbad09b1794a22c1ad871d2cbaaee5f6a62107
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Oct 8, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page