Rust powered pytest-compatible runner
Project description
Rustest (pronounced like Russ-Test) is a Rust-powered test runner that aims to provide the most common pytest ergonomics with a focus on raw performance. Get massive speedups (8.5ร average, up to 19ร faster) with familiar syntax and minimal setup.
๐ Full Documentation | Getting Started | User Guide | API Reference
๐ Try It Now โ Zero Commitment
Test rustest on your existing pytest suite in 10 seconds:
# Using uv
uv add rustest
uv run rustest --pytest-compat tests/
# Or using pip
pip install rustest
python -m rustest --pytest-compat tests/
That's it! The --pytest-compat flag lets you run your existing pytest tests with rustest without changing a single line of code. See the speedup immediately, then decide if you want to migrate.
What does --pytest-compat do?
The --pytest-compat mode intercepts import pytest statements and provides rustest implementations transparently:
- โ
Works with existing
@pytest.fixture,@pytest.mark.*,@pytest.mark.parametrize() - โ
Fixture parametrization:
@pytest.fixture(params=[...])withrequest.param - โ
Request object:
request.node(test metadata/markers),request.config(options/ini values) - โ
Supports
pytest.param()with custom IDs - โ
Built-in fixtures:
tmp_path,tmpdir,monkeypatch,capsys,capfd,caplog,cache,request - โ
Handles
pytest.raises(),pytest.fail(),pytest.skip(),pytest.xfail(),pytest.approx() - โ
Async support:
@pytest.mark.asynciofor async tests (built-in, no plugin needed) - โ
Warning capture:
pytest.warns(),pytest.deprecated_call() - โ
Module skipping:
pytest.importorskip() - โ No code changes required โ just run and compare!
Known Limitations:
- โ ๏ธ No pytest plugin support (by design - see Plugin Compatibility)
- โ ๏ธ No
_pytestmodule internals (assertion rewriting, hook system) - โ ๏ธ
request.node.parent,request.node.sessionare always None - โ ๏ธ Advanced pytest features require migration (see Migration Guide)
Example output:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ RUSTEST PYTEST COMPATIBILITY MODE โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฃ
โ Running pytest tests with rustest. โ
โ โ
โ Supported: fixtures, parametrize, marks, approx โ
โ Built-ins: tmp_path, tmpdir, monkeypatch, capsys, capfd, โ
โ caplog, cache, request (with node & config) โ
โ Functions: skip(), xfail(), fail(), raises(), warns() โ
โ Async: @mark.asyncio (built-in, no plugin needed) โ
โ โ
โ NOTE: Plugin APIs are stubbed (non-functional). โ
โ pytest_asyncio and other plugins can import, โ
โ but advanced plugin features won't work. โ
โ โ
โ For full features, use native rustest: โ
โ from rustest import fixture, mark, ... โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Once you see the performance gains, migrate to native rustest imports for the full feature set.
Why rustest?
- ๐ 8.5ร average speedup over pytest on the synthetic benchmark matrix (peaking at 19ร on 5k-test suites)
- ๐งช Pytest compatibility mode โ Run existing pytest tests without code changes (
--pytest-compat) - โ
Familiar
@fixture,@parametrize,@skip, and@markdecorators - ๐ Built-in async support with
@mark.asyncio(like pytest-asyncio, no plugin needed) - ๐ Automatic test discovery (
test_*.pyand*_test.pyfiles) - ๐ Built-in markdown code block testing (like pytest-codeblocks, but faster)
- ๐ฏ Simple, clean APIโif you know pytest, you already know rustest
- ๐งฎ Built-in
approx()helper for tolerant numeric comparisons - ๐ชค
raises(),skip(),xfail(),fail()for test control - ๐ ๏ธ Built-in fixtures:
tmp_path,tmpdir,monkeypatch,capsys,capfd,caplog,cache,request - ๐ Request object:
request.nodefor test metadata/markers,request.configfor options - ๐ฆ Easy installation with pip/uv, or try instantly with uvx/pipx
- โก Low-overhead execution keeps small suites feeling instant
- ๐ Crystal-clear error messages that make debugging effortless
Performance
Rustest is designed for speed. The new benchmark matrix generates identical pytest and rustest suites ranging from 1 to 5,000 tests and runs each command five times. Rustest delivers an 8.5ร average speedup and reaches 19ร faster execution on the largest suite:
| Test Count | pytest (mean) | rustest (mean) | Speedup | pytest tests/s | rustest tests/s |
|---|---|---|---|---|---|
| 1 | 0.428s | 0.116s | 3.68x | 2.3 | 8.6 |
| 5 | 0.428s | 0.120s | 3.56x | 11.7 | 41.6 |
| 20 | 0.451s | 0.116s | 3.88x | 44.3 | 171.7 |
| 100 | 0.656s | 0.133s | 4.93x | 152.4 | 751.1 |
| 500 | 1.206s | 0.146s | 8.29x | 414.4 | 3436.1 |
| 1,000 | 1.854s | 0.171s | 10.83x | 539.4 | 5839.4 |
| 2,000 | 3.343s | 0.243s | 13.74x | 598.3 | 8219.9 |
| 5,000 | 7.811s | 0.403s | 19.37x | 640.2 | 12399.7 |
What speedup should you expect?
- Tiny suites (โค20 tests): Expect ~3โ4ร faster runs. Startup costs dominate here, so both runners feel instant, but rustest still trims a few hundred milliseconds on every run.
- Growing suites (โ100โ500 tests): Expect ~5โ8ร faster execution. Once you have a few dozen files, rustest's lean discovery and fixture orchestration start to compound.
- Large suites (โฅ1,000 tests): Expect ~11โ19ร faster runs. Bigger suites amortize startup overhead entirely, letting rustest's Rust core stretch its legs and deliver order-of-magnitude gains.
Highlights:
- 8.5ร average speedup across the matrix (geometric mean 7.0ร)
- 16.2ร weighted speedup when weighting by the number of executed tests
- 1.45s total runtime for rustest vs 16.18s for pytest across all suites
Reproduce the matrix locally:
python3 profile_tests.py --runs 5
python3 generate_comparison.py
Real-world integration suite (~200 tests)
Our integration suite remains a great proxy for day-to-day use and still shows a ~2.1ร wall-clock speedup:
| Test Runner | Wall Clock | Speedup | Command |
|---|---|---|---|
| pytest | 1.33โ1.59s | 1.0x (baseline) | pytest tests/ examples/tests/ -q |
| rustest | 0.69โ0.70s | ~2.1x faster | python -m rustest tests/ examples/tests/ |
Rustest's own test suite (~500 tests)
Running rustest's comprehensive test suite demonstrates both the performance gains and compatibility:
| Test Runner | Test Count | Wall Clock | Speedup | Notes |
|---|---|---|---|---|
| pytest | 457 tests | 1.95โ2.04s | 1.0x (baseline) | With pytest-asyncio plugin |
| rustest | 497 tests | 0.54โ0.58s | ~3.6x faster | Built-in async & fixture parametrization |
Key Points:
- Shared test suite compatibility - 457 tests use
from rustest import fixture, markbut run seamlessly with both pytest and rustest thanks to conftest.py automatic import compatibility - Rustest is ~3.6ร faster on the same test workload without requiring external plugins
- pytest requires pytest-asyncio plugin for async support; rustest has it built-in
- Both support fixture parametrization - rustest natively, pytest through standard
@pytest.fixture(params=[...]) - rustest includes 40 additional tests for its pytest compatibility layer that only run with rustest
This demonstrates rustest's design philosophy: provide pytest-compatible APIs with significantly better performance and built-in features.
Large parametrized stress test
With 10,000 parametrized invocations:
| Test Runner | Avg. Wall Clock | Speedup | Command |
|---|---|---|---|
| pytest | 9.72s | 1.0x | pytest benchmarks/test_large_parametrize.py -q |
| rustest | 0.41s | ~24x faster | python -m rustest benchmarks/test_large_parametrize.py |
๐ View Detailed Performance Analysis โ
Debugging: Crystal-Clear Error Messages
Rustest transforms confusing assertion failures into instantly readable error messages. Every test failure shows you exactly what went wrong and what was expected, without any guesswork.
Enhanced Error Output
Rustest makes failed assertions obvious. Here's a simple example:
Your test code:
def test_numeric_comparison():
actual = 42
expected = 100
assert actual == expected
What Rustest shows when it fails:
Code:
def test_numeric_comparison():
actual = 42
expected = 100
โ assert actual == expected
E AssertionError: assert 42 == 100
E Expected: 100
E Received: 42
โ /path/to/test_math.py:5
What you get:
- ๐ Code Context โ Three lines of surrounding code with the failing line highlighted.
- โจ Vitest-style Output โ Clear "Expected" vs "Received" values with color coding.
- ๐ Value Substitution โ Real runtime values are inserted into the assertion (e.g.,
assert 42 == 100). - ๐ฏ Frame Introspection โ Even minimal assertions like
assert result == expectedshow both runtime values. - ๐ Clickable Locations โ File paths appear as clickable links for fast navigation in supported editors.
Real-World Example
Your test code:
class User:
def __init__(self, email: str):
self.email = email
def create_user(name: str, age: int):
"""Return a User with a properly formatted email."""
return User(f"{name.lower()}@company.com")
def test_user_creation():
user = create_user("Alice", 25)
# Intentional mistake for demonstration:
user.email = "alice.wrong@example.com"
assert user.email == "alice@company.com"
What Rustest shows when it fails:
Code:
def test_user_creation():
user = create_user("Alice", 25)
user.email = "alice.wrong@example.com"
โ assert user.email == "alice@company.com"
E AssertionError: assert 'alice.wrong@example.com' == 'alice@company.com'
E Expected: alice@company.com
E Received: alice.wrong@example.com
โ /path/to/test_users.py:10
No more debugging confusion! You immediately see what value was received, what was expected, and where it failed โ all in a format inspired by pytest and vitest.
Installation
Rustest supports Python 3.10 through 3.14.
Try First (No Installation)
Test rustest on your existing pytest tests without installing anything:
# Try it instantly with uvx (recommended)
uvx rustest --pytest-compat tests/
# Or with pipx
pipx run rustest --pytest-compat tests/
Install Permanently
Once you're convinced, install rustest:
# Using pip
pip install rustest
# Using uv (recommended for new projects)
uv add rustest
Quick Start
๐ก Already have pytest tests? Skip to step 2 and use
rustest --pytest-compat tests/to run them immediately without changes!
1. Write Your Tests
Create a file test_math.py:
from rustest import fixture, parametrize, mark, approx, raises
import asyncio
@fixture
def numbers() -> list[int]:
return [1, 2, 3, 4, 5]
def test_sum(numbers: list[int]) -> None:
assert sum(numbers) == approx(15)
@parametrize("value,expected", [(2, 4), (3, 9), (4, 16)])
def test_square(value: int, expected: int) -> None:
assert value ** 2 == expected
@mark.slow
def test_expensive_operation() -> None:
result = sum(range(1000000))
assert result > 0
@mark.asyncio
async def test_async_operation() -> None:
# Example async operation
await asyncio.sleep(0.001)
result = 42
assert result == 42
def test_division_by_zero() -> None:
with raises(ZeroDivisionError, match="division by zero"):
1 / 0
2. Run Your Tests
# Run all tests
rustest
# Run specific tests
rustest tests/
# Run existing pytest tests without code changes
rustest --pytest-compat tests/
# Filter by test name pattern
rustest -k "test_sum"
# Filter by marks
rustest -m "slow" # Run only slow tests
rustest -m "not slow" # Skip slow tests
rustest -m "slow and integration" # Run tests with both marks
# Rerun only failed tests
rustest --lf # Last failed only
rustest --ff # Failed first, then all others
# Exit on first failure
rustest -x # Fail fast
# Combine options
rustest --ff -x # Run failed tests first, stop on first failure
# Show output during execution
rustest --no-capture
๐ Full Quick Start Guide โ
Documentation
Getting Started
User Guide
- Writing Tests
- Fixtures
- Parametrization
- Marks & Skipping
- Test Classes
- Assertion Helpers
- Markdown Testing
- CLI Usage
- Python API
API Reference
Advanced Topics
Feature Comparison with pytest
Rustest implements the 20% of pytest features that cover 80% of use cases, with a focus on raw speed and simplicity.
๐ View Full Feature Comparison โ
โ Supported:
- Core features: Fixtures, fixture parametrization, test parametrization, marks, test classes, conftest.py, markdown testing
- Built-in fixtures:
tmp_path,tmpdir,monkeypatch,capsys,capfd,caplog,cache,request - Test utilities:
pytest.raises(),pytest.fail(),pytest.approx(),pytest.warns() - Async testing:
@mark.asyncio(pytest-asyncio compatible) - Pytest compatibility mode: Run existing pytest tests with
--pytest-compat(no code changes!)
๐ง Planned: Parallel execution, JUnit XML output, more built-in fixtures
โ Not Planned: Plugins, hooks, custom collectors (keeps rustest simple)
Contributing
We welcome contributions! See the Development Guide for setup instructions.
Quick reference:
# Setup
git clone https://github.com/Apex-Engineers-Inc/rustest.git
cd rustest
uv sync --all-extras
uv run maturin develop
# Run tests
uv run poe pytests # Python tests
cargo test # Rust tests
# Format and lint
uv run pre-commit install # One-time setup
git commit -m "message" # Pre-commit hooks run automatically
License
rustest is distributed under the terms of the MIT license. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rustest-0.12.0.tar.gz.
File metadata
- Download URL: rustest-0.12.0.tar.gz
- Upload date:
- Size: 293.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
964aa6da31acfcc5f09fd715cb73539ee01b49128febde5e6fe83b96832caabc
|
|
| MD5 |
074f3f6e2bc70c3fdd6eb1872df936eb
|
|
| BLAKE2b-256 |
01e416267b8b3918bbbc3a8ee431315a3bc24c908b032d74f0bebe97c5b12b62
|
File details
Details for the file rustest-0.12.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: rustest-0.12.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 995.6 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a953b692eca066cffd4c0aecc018eb6e972a9948ba02e7c94065d8211e47eaee
|
|
| MD5 |
6910b47a349b91c3561365741a1f4e3b
|
|
| BLAKE2b-256 |
1070c879bcb4a7c7112350e920e395092b2b55ec73e0fe2ddd93d7230e902052
|
File details
Details for the file rustest-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: rustest-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c5aeb206f16df9dcc5ff49efd702ce6d7786e98163e0039b779b7e101dce572
|
|
| MD5 |
7383ddf88b6eaa4021b1d51603228fae
|
|
| BLAKE2b-256 |
6f8854443aa71c73454a2c88befbc935b724230caedbbb5971b2ef4813c4adf4
|
File details
Details for the file rustest-0.12.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: rustest-0.12.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a2225c5f31da652b1c137bacfdff4faa30f0d3a7dfd03dfb425055d247146b5
|
|
| MD5 |
6141ef5508065829aea1cb00f9636370
|
|
| BLAKE2b-256 |
5223054a18d07b0a589921bcf566d2bfaeee0f58572f805dea3370800635887b
|
File details
Details for the file rustest-0.12.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: rustest-0.12.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 995.6 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc73c09b6f97901f082d84b011e47ec89103ebd768cd2d57e2b20302bc22004e
|
|
| MD5 |
668ef473c92ba5fb16499e000721eee3
|
|
| BLAKE2b-256 |
bd238c9e40aa0dd44070ef9e7fa779642373ea74bedf363b2e8295a7b3d6ea6b
|
File details
Details for the file rustest-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: rustest-0.12.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
023819c69c71020f65c9ba088c843997e60786e4a19dbd907052a89e29a32091
|
|
| MD5 |
af1e53f0b41db157b8c20d7037580f9a
|
|
| BLAKE2b-256 |
af0030c262cd357099e2405cd7f3cd4f6cf267af0c8d4f734ae01666732f90c4
|
File details
Details for the file rustest-0.12.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: rustest-0.12.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c1d062e99637df2a90e813899034679f023ad0398408d822fa4349e12ebbd544
|
|
| MD5 |
884c8e160c15597bbea90334e021cd98
|
|
| BLAKE2b-256 |
5d657fd0bfb6fe7915c7e458d13cc2473e5d898da39f20ff492ca4a223cfe99e
|
File details
Details for the file rustest-0.12.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: rustest-0.12.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 997.1 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ede44ae7f0ffeefabb5dbd426552f990cbdbb2c36ceed926766996537f767c93
|
|
| MD5 |
a97ad0ab84b0b441f087b9fb7690c27c
|
|
| BLAKE2b-256 |
0b3b3aca5f15405838d0252caf5911a9b986b417e5784bd6bbb42cf4c28f8aee
|
File details
Details for the file rustest-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: rustest-0.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30abb280e468883e3e43024f4df241cda69c7c23cb4b8f2eb1ab85c68fad9dca
|
|
| MD5 |
3fcd247a8713b6660f7b8d79ea572827
|
|
| BLAKE2b-256 |
e6d9f3c2ae95129472e66345daaf0df0ca0a8a15649eda49d3db4dce994e1ed2
|
File details
Details for the file rustest-0.12.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: rustest-0.12.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc889392d60c3f2cc86bab6f5ab7653be36afdfc831fcba38bb568632522e7b1
|
|
| MD5 |
54482e985f533e697faee84a46b12343
|
|
| BLAKE2b-256 |
c5efef8373810a2c07b2cbe5c31edd08b05a251c95a24b6c42c0e1a9c3f81fae
|
File details
Details for the file rustest-0.12.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: rustest-0.12.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 997.5 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb580aeae916dca856155c175c8b318b810704f55126eab187cf3f4693f1bd4e
|
|
| MD5 |
1d4d99bff3eb41c5c5b960c4adaaeb37
|
|
| BLAKE2b-256 |
18a18f496fbf8b4582d0b4fd8cca53f80077875714fdfb7f332c6aa8e2bf2114
|
File details
Details for the file rustest-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: rustest-0.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
276665160c3f6fa8134ad26ca324d79ea394ba4f48543aedd73a90365b5dff5c
|
|
| MD5 |
3efb1cf87a0cfcbed96fdcf27209fdce
|
|
| BLAKE2b-256 |
75646d50a071a4ec2155d5545631a8d6c0f027d9e137c112ec41bce080c87cee
|
File details
Details for the file rustest-0.12.0-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: rustest-0.12.0-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1abe4871d46d228fb4313777f0bb2318dbe7eca4aacf9350a582c54f1f411570
|
|
| MD5 |
faf08b5612228f1d97428ea9b31fe867
|
|
| BLAKE2b-256 |
e12f56cf64426502cb00af52d6a33d5c075a6c6bffa3685bcc38a6eef55c1782
|