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.0a6
uv run --no-sync python -m pytest_boorst

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

python -m pip install --no-deps pytest-boorst==0.1.0a6
python -m pytest_boorst

Both work in POSIX shells and PowerShell. Append your usual pytest arguments, such as -q tests/, to the run command. --no-deps preserves your installed pytest and other dependencies. The module enables Boorst only for that pytest process, uses your existing Python and pytest configuration, and leaves 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 remains disabled for ordinary pytest runs unless PYTEST_BOORST=1. Use -p no:boorst to prevent plugin loading; uninstalling the package restores ordinary pytest behavior. The module command respects plugin-autoload settings.

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.0a6

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.0a6
File Size Uploaded
pytest_boorst-0.1.0a6.tar.gz 76.1 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for pytest-boorst 0.1.0a6
File
pytest_boorst-0.1.0a6-py3-none-any.whl Python 3 none any Details
pytest_boorst-0.1.0a6-cp310-abi3-win_arm64.whl CPython 3.10 abi3 Windows ARM64 Details
pytest_boorst-0.1.0a6-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
pytest_boorst-0.1.0a6-cp310-abi3-win32.whl CPython 3.10 abi3 Windows x86-32 Details
pytest_boorst-0.1.0a6-cp310-abi3-musllinux_1_2_x86_64.whl CPython 3.10 abi3 Linux musl 1.2+ x86-64 Details
pytest_boorst-0.1.0a6-cp310-abi3-musllinux_1_2_i686.whl CPython 3.10 abi3 Linux musl 1.2+ x86-32 Details
pytest_boorst-0.1.0a6-cp310-abi3-musllinux_1_2_aarch64.whl CPython 3.10 abi3 Linux musl 1.2+ ARM64 Details
pytest_boorst-0.1.0a6-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.0a6-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-32 Details
pytest_boorst-0.1.0a6-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details
pytest_boorst-0.1.0a6-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details
pytest_boorst-0.1.0a6-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.0a6.tar.gz

Download URL pytest_boorst-0.1.0a6.tar.gz
Size 76.1 kB
Tags Source
SHA-256 checksum
How to use checksums
f009f3eb2dc08d3512cfa9facbf88947a206561340ed1977d9c164842176492f
BLAKE2b-256 checksum
How to use checksums
33be7ef2d154be269b6e447b726800c35c4b3692e580d3bcb85a226e460e68af
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.0a6-py3-none-any.whl

Download URL pytest_boorst-0.1.0a6-py3-none-any.whl
Size 12.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9d670867731b9ade28a124d6ca6e9e36bfcdd42bc72183e6ed963102db0df334
BLAKE2b-256 checksum
How to use checksums
7022c5b2b50dd08c4fefd9d390a686a2fd637fa4e135a638e562affc1d6865b1
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.0a6-cp310-abi3-win_arm64.whl

Download URL pytest_boorst-0.1.0a6-cp310-abi3-win_arm64.whl
Size 119.0 kB
Tags CPython 3.10 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
9bf58e37952f8b968c41c989f9e216cbd6d7d6c2e229c3bfa3b526c032269331
BLAKE2b-256 checksum
How to use checksums
69dc1a3250d469b08db7664e2de9eb8f964c2b506c590f786bb32e24f477b06b
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.0a6-cp310-abi3-win_amd64.whl

Download URL pytest_boorst-0.1.0a6-cp310-abi3-win_amd64.whl
Size 119.9 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
7d0a44f5a532c9b65e278b137ffa09f4b9732bec45970a86c0a75238492a2698
BLAKE2b-256 checksum
How to use checksums
a662f68bc0bf48af60349abc7cda1149c0eb9ba065a95cc47d982bea53f1be85
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.0a6-cp310-abi3-win32.whl

Download URL pytest_boorst-0.1.0a6-cp310-abi3-win32.whl
Size 115.1 kB
Tags CPython 3.10 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
142a1081a890e0c5ffe18ffba5637dedacae61a1b1a8b1359c673b121f60cb30
BLAKE2b-256 checksum
How to use checksums
ac30f44c3473d6de9c35a3dcc9421b3223507206eddfe4934f5c917da147100c
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.0a6-cp310-abi3-musllinux_1_2_x86_64.whl

Download URL pytest_boorst-0.1.0a6-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
c55a3589890d7062f4734f0e57925872e50303c9b0cca0b3ef9b32654f6c85e1
BLAKE2b-256 checksum
How to use checksums
3e245b339bb5086df2784d6d171be5cb490eb8882930506a6a8bda0a7f79e91c
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.0a6-cp310-abi3-musllinux_1_2_i686.whl

Download URL pytest_boorst-0.1.0a6-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
0aedb59ad0d64b34457af61336ebe5bf7f4d1ec91be8ada9f7c257911be7d0f0
BLAKE2b-256 checksum
How to use checksums
5268b550ea3e67209c961688f1bd423c485b05880ec3f17fe731990173a3aca3
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.0a6-cp310-abi3-musllinux_1_2_aarch64.whl

Download URL pytest_boorst-0.1.0a6-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
2bbaf5e72cdaca5173545820833521eaa4fbe4f07cff667ebd2e774e24ea2782
BLAKE2b-256 checksum
How to use checksums
9bcb8ae4217ff2cf1472c87e272968cd49080963c6d7f851bb20a47f949e0ded
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.0a6-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pytest_boorst-0.1.0a6-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
2b4326f6d217568a0baebd48edf996a115b56c6ab7bdab86706e9aff5f1590a4
BLAKE2b-256 checksum
How to use checksums
52007281c10c8f18ed6cd26ac904958fb41520d1ae255b249cd1a30f86555fe4
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.0a6-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL pytest_boorst-0.1.0a6-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
918b84f60921c9961a649a0d28a362fcff40a5bb4f34524ef1b7fa46dbd23e01
BLAKE2b-256 checksum
How to use checksums
a746896b5dab143570b780c45edcd49bffda120e3fc96c2cfa491bfec4130975
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.0a6-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL pytest_boorst-0.1.0a6-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
1820949e9ded26c4fad96794fb60e4592f732019a79e5b319cdd4981579928a8
BLAKE2b-256 checksum
How to use checksums
fdd2c202e1c0fb0e14ebdaa17e44bde7b5894e7b3efdbb24c873251972a34b2e
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.0a6-cp310-abi3-macosx_11_0_arm64.whl

Download URL pytest_boorst-0.1.0a6-cp310-abi3-macosx_11_0_arm64.whl
Size 233.7 kB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9f633b73a48d504431c428670c8d95abe2621d01afde56c8ae8263f6d720e6a5
BLAKE2b-256 checksum
How to use checksums
8bbcfc4eb9be9a9012e83b32a2f099656c480d0585b160ab9516b7847100fc08
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.0a6-cp310-abi3-macosx_10_12_x86_64.whl

Download URL pytest_boorst-0.1.0a6-cp310-abi3-macosx_10_12_x86_64.whl
Size 232.8 kB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
f316ce35d05bc1e6d8ee69a570396b3c27caa1eeb00c6941b30932bf51492140
BLAKE2b-256 checksum
How to use checksums
79ea665e340c0a8f02bfc0c96cc330573d6e74a4fee8b2ae771c075b335c35e0
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