Skip to main content

rustest logo

Rustest is a Rust-powered pytest-compatible test runner delivering 8.5× average speedup with familiar pytest syntax and zero setup.

📚 Full Documentation | Getting Started | Migration Guide

🚀 Try It Now

Run your existing pytest tests with rustest — no code changes required:

pip install rustest
rustest --pytest-compat tests/

See the speedup immediately, then migrate to native rustest for full features.

Why Rustest?

  • 🚀 8.5× average speedup over pytest (up to 19× on large suites)
  • 🧪 pytest-compatible — Run existing tests with --pytest-compat
  • ✅ Familiar API — Same @fixture, @parametrize, @mark decorators
  • 🔄 Built-in async & mocking — No pytest-asyncio or pytest-mock plugins needed
  • 🐛 Clear error messages — Vitest-style output with Expected/Received diffs
  • 🤖 LLM-friendly output — --llm emits deterministic JSONL for coding agents (Claude Code, Cursor, Copilot)
  • 📝 Markdown testing — Test code blocks in documentation
  • 🛠️ Rich fixtures — tmp_path, monkeypatch, mocker, capsys, caplog, cache, and more

Performance

Rustest delivers consistent speedups across test suites of all sizes:

Test Count pytest rustest Speedup
20 0.45s 0.12s 3.8×
500 1.21s 0.15s 8.3×
5,000 7.81s 0.40s 19.4×

Expected speedups: 3-4× for small suites, 5-8× for medium suites, 11-19× for large suites.

📊 Full Performance Analysis →

Installation

pip install rustest
# or
uv add rustest

Python 3.10-3.14 supported. 📖 Installation Guide →

Quick Start

Write a test in test_example.py:

from rustest import fixture, parametrize, mark, raises

@fixture
def numbers():
    return [1, 2, 3, 4, 5]

def test_sum(numbers):
    assert sum(numbers) == 15

@parametrize("value,expected", [(2, 4), (3, 9)])
def test_square(value, expected):
    assert value ** 2 == expected

@mark.asyncio
async def test_async():
    result = 42
    assert result == 42

def test_exception():
    with raises(ZeroDivisionError):
        1 / 0

Run your tests:

rustest                      # Run all tests
rustest tests/               # Run specific directory
rustest -k "test_sum"        # Filter by name
rustest -m "slow"            # Filter by mark
rustest --lf                 # Rerun last failed
rustest -x                   # Exit on first failure
rustest --llm                # JSONL output for LLM coding agents

📖 Full Documentation →

Learn More

Contributing

Contributions welcome! See the Development Guide for setup instructions.

License

MIT License. See LICENSE for details.

Metadata

Release files for rustest 0.18.0

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

Source distribution (sdist)

Source distribution for rustest 0.18.0
File Size Uploaded Provenance
rustest-0.18.0.tar.gz 460.9 kB Without provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for rustest 0.18.0
File
rustest-0.18.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
rustest-0.18.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
rustest-0.18.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
rustest-0.18.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
rustest-0.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
rustest-0.18.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
rustest-0.18.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
rustest-0.18.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
rustest-0.18.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
rustest-0.18.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
rustest-0.18.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
rustest-0.18.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details

Total release size: 14.8 MB

Release files / rustest-0.18.0.tar.gz

Download URL rustest-0.18.0.tar.gz
Size 460.9 kB
Tags Source
SHA-256 checksum
How to use checksums
ea75da1122a738707f84e20c8ecb2f490c2addcfdce90ef1eec3aab05eba46f0
BLAKE2b-256 checksum
How to use checksums
26e7ac126164fc6016f524a27a6e8a4139b7c1dbd34f4ede61e586c7bc744251
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rustest-0.18.0-cp313-cp313-win_amd64.whl

Download URL rustest-0.18.0-cp313-cp313-win_amd64.whl
Size 1.1 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
e26598091ffaf4fefc6e1dba9b7d8d3ecebe0e31fdfea97668cd3602607eee33
BLAKE2b-256 checksum
How to use checksums
466ff2ce165e274e5b9790b8535da563d0c8c0b983fe8668046da21cddd457cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rustest-0.18.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rustest-0.18.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.3 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
50d63b8bcf5a7c1c3bacada06823bc5dd8684201667dbe1066cbda8cc3ed78cc
BLAKE2b-256 checksum
How to use checksums
9082164c0cd09173f304edf14ccfe7fd95845f58520d4189202be333e7dc1985
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rustest-0.18.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL rustest-0.18.0-cp313-cp313-macosx_11_0_arm64.whl
Size 1.2 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d0c69e29fd19011ba99538a4e3288f513e4c5179d5ecf13ddc214d841367a9c1
BLAKE2b-256 checksum
How to use checksums
fbd89c36b6a62e7df5a2644d4aa759741c237efae691140574af04b83a0d917e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rustest-0.18.0-cp312-cp312-win_amd64.whl

Download URL rustest-0.18.0-cp312-cp312-win_amd64.whl
Size 1.1 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
8adf8c12d563ff0b8f324c8fd8df2656b8cddcd3c243036bf8c38abcfb0699e2
BLAKE2b-256 checksum
How to use checksums
b289eee7236856cbca8f3784f9dce67a461a3063effd76e833a47d46cdbbb222
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rustest-0.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rustest-0.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.3 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
31599918c01687ae0f05f48ac13f59e3bc84046578e5f6aaa3f4c1e4fe4eb679
BLAKE2b-256 checksum
How to use checksums
e9eda85cc4ad4be421f19ae1c77fae2b13216072b2572ab65501ab4b5aa1dafb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rustest-0.18.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL rustest-0.18.0-cp312-cp312-macosx_11_0_arm64.whl
Size 1.2 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
434f0889daca524da5275b507d52dfd4c64847d45f11d25beef2394e7044610b
BLAKE2b-256 checksum
How to use checksums
7d91a88db7a7c3ae656ad7a159009e47e70e773c40b89b28090beffd10859369
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rustest-0.18.0-cp311-cp311-win_amd64.whl

Download URL rustest-0.18.0-cp311-cp311-win_amd64.whl
Size 1.1 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
829474488a002cb54c5f3feeb0b9a6ce0b70e8a2f49a4581c0196289695c97f7
BLAKE2b-256 checksum
How to use checksums
9c0634fa9f41df85ba0a0bea82c8856be37b56a748cd0240bcfc7e91901f91db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rustest-0.18.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rustest-0.18.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.3 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
9dd7ac8eaad277544014d9d121fc879d99459b78c019d5d7a0344515d0e52a90
BLAKE2b-256 checksum
How to use checksums
7ef8b2c501072560639d4fa239f5a99fc8151c0837f26cf36860e3518b73d468
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rustest-0.18.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL rustest-0.18.0-cp311-cp311-macosx_11_0_arm64.whl
Size 1.2 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
41e29fcc2357bb6524f5b3af6986572805c1cfc1d065cd2322dcb258f737942d
BLAKE2b-256 checksum
How to use checksums
84fec0fdbb9b13adc1cf6df3c9990922070743672903f3ae5accc7f3891c0161
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rustest-0.18.0-cp310-cp310-win_amd64.whl

Download URL rustest-0.18.0-cp310-cp310-win_amd64.whl
Size 1.1 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
f782278cc7360f415f4d663c377a6ccd3fe8b37e5a0ba6c1e5aae381ff386f8b
BLAKE2b-256 checksum
How to use checksums
1662759eef6499cfbebca82025f27dbfd2c1e9774412e21b0581b2089b21a064
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rustest-0.18.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rustest-0.18.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.3 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
d213fcd96373f882389e94d9a627b620ba5f513129a582d23761868c455a30f4
BLAKE2b-256 checksum
How to use checksums
ded2780be72144d6cfd6af9005ba391ab65ad1cfcf1a96cf7b6856d027fde154
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / rustest-0.18.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL rustest-0.18.0-cp310-cp310-macosx_11_0_arm64.whl
Size 1.2 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5f0b78341dc15e446974a87f59ba4e5db6113fcc741dfe8034aa536a6ef9bd1b
BLAKE2b-256 checksum
How to use checksums
bc47e1e285836d48fb0bae8bb9f768aeb7001450a0e2e3deb2e8c8331ae90f7f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for rustest 0.18.0

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A 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.

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