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

With uv installed, run this command from your project with its test dependencies already installed in its virtual environment. It works in POSIX shells and PowerShell:

uv run --no-sync https://raw.githubusercontent.com/dnikolayev/pytest-boorst/v0.1.0a5/scripts/try.py

Append your usual pytest arguments, such as -q tests/. The launcher installs the pinned GitHub release using a compatible wheel and enables Boorst for that pytest process. It preserves the existing Python, pytest, dependencies, project configuration, and lockfile. An already-installed matching alpha needs no wheel download or reinstallation.

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 launcher respects plugin-autoload settings.

You can also install the pinned alpha from PyPI with uv pip install pytest-boorst==0.1.0a5. 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 trial launcher 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.0a5

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

Built distributions (wheels)

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

Download URL pytest_boorst-0.1.0a5.tar.gz
Size 75.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c58f2b8c60d09d62203135ae69bd56bb62392fe8e0b318cecf06033e418a25f0
BLAKE2b-256 checksum
How to use checksums
777a421470387f5dc2712c1682cff1ccf87b3827c78ac542f7087a3aa7a20b92
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.0a5-py3-none-any.whl

Download URL pytest_boorst-0.1.0a5-py3-none-any.whl
Size 12.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d7050f0bff555eb7801d3d4d460339d30e11082f8c041b8d778b55ae1269594e
BLAKE2b-256 checksum
How to use checksums
f04408165ce6ff304eade9abd1b1c897af15dec71391f0a60898b642a2f85250
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.0a5-cp310-abi3-win_arm64.whl

Download URL pytest_boorst-0.1.0a5-cp310-abi3-win_arm64.whl
Size 118.6 kB
Tags CPython 3.10 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
2458ae4c68efb5249388d4d410e79bb7d50228970a2d620820d72d7ed649fe5e
BLAKE2b-256 checksum
How to use checksums
25678b131059dbed804ea082c838be680bd388779d598722648821c4654fc1c6
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.0a5-cp310-abi3-win_amd64.whl

Download URL pytest_boorst-0.1.0a5-cp310-abi3-win_amd64.whl
Size 119.5 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
a17c6916f0e1cbbc2c1cbd0b34ad923446192488a6eb356fe221736954ca3b9c
BLAKE2b-256 checksum
How to use checksums
48fba92fec04588c355593e652db8553b3be16c7b40a0a2bd3f2fb783235e439
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.0a5-cp310-abi3-win32.whl

Download URL pytest_boorst-0.1.0a5-cp310-abi3-win32.whl
Size 114.7 kB
Tags CPython 3.10 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
b23c26666728dfbf3caf3bf33dc40a58e745c403794ded21f0a984d7a909a723
BLAKE2b-256 checksum
How to use checksums
7f2b91c6857cd66c7d287b96c7a183d0fc2582a05f98bc31041d7e14fbed6ea3
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.0a5-cp310-abi3-musllinux_1_2_x86_64.whl

Download URL pytest_boorst-0.1.0a5-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
fd1acc96869d52604eebffb7944ebadb80f94c1cfc4945e7bfd2dfa231488106
BLAKE2b-256 checksum
How to use checksums
162a3f45195beb509c5f0a5aad76f7d3c3a8900ca082026d92bb5f92e791aa57
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.0a5-cp310-abi3-musllinux_1_2_i686.whl

Download URL pytest_boorst-0.1.0a5-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
456283f18dd6490665f13ed2c1cfff42c5aacad4975fe99f3ba579bdd64c8eb6
BLAKE2b-256 checksum
How to use checksums
fd65049227cc19a9cb00224393f3961498d410f63b85b249c394c5c244c68079
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.0a5-cp310-abi3-musllinux_1_2_aarch64.whl

Download URL pytest_boorst-0.1.0a5-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
8332d5214022469859f3caafadecfcfb0f46335c1b45b3f1248f0ff455560388
BLAKE2b-256 checksum
How to use checksums
f4c2802e8ebcbaae6a78dfc5ba18f9c39ddd332489f577b456fcd6b8e18fb8ae
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.0a5-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL pytest_boorst-0.1.0a5-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
04912505a7da5eb2940a6c07a17188c3d5b57c508720e0f1287bd413f73fcdc3
BLAKE2b-256 checksum
How to use checksums
bcdf6cbb874d5a3193229ec313b3e1189fdbe0d71f471031b6eae3ca1224460b
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.0a5-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL pytest_boorst-0.1.0a5-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
7c41c8498a74070725aa982208827e254ba01d8e413fd2b74a7c69bb0c17dbb7
BLAKE2b-256 checksum
How to use checksums
1f33ec315f77555add90f11d214946be10ca554cf7bf9d375b3be01eecd3a98a
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.0a5-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL pytest_boorst-0.1.0a5-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
796f3b4b87aaad1065ce48eaf28954cee817569dd48f9da2638ef41e24460f62
BLAKE2b-256 checksum
How to use checksums
3067eeedfd5a41fa6882230593c90eb36f387b5f4acffac1f1d9fe46a0441df9
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.0a5-cp310-abi3-macosx_11_0_arm64.whl

Download URL pytest_boorst-0.1.0a5-cp310-abi3-macosx_11_0_arm64.whl
Size 233.3 kB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1cb8a53e4b43f1e76b62872e49d676431a9731a74c7430a1d7de9f0dacf2e6b0
BLAKE2b-256 checksum
How to use checksums
6dee345cf4061d8bd18ecf06017d1e8204b33a9b3bac40a91d1d9f1b4b6a320e
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.0a5-cp310-abi3-macosx_10_12_x86_64.whl

Download URL pytest_boorst-0.1.0a5-cp310-abi3-macosx_10_12_x86_64.whl
Size 232.4 kB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
1920329fac2bc2bb65043df36df4600dc0afe35308400a025391fd700a6f8886
BLAKE2b-256 checksum
How to use checksums
2f3842c99e03a6baddfbe834856d815d27200bd4a3b16aa1f1e716633ed88567
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