Proptest
Proptest is a free property testing framework for Rust.
What Proptest is
Proptest is a free property testing framework for Rust. It generates values from strategies and can simplify a failing input to a minimal test case that reproduces the problem. Strategies are defined for individual values, which supports flexible composition, and the framework includes a substantial strategy library. It also supports state-machine testing for systems such as database APIs and client-server interactions. Failed cases can be saved for replay in later runs; optional fork and timeout features run tests in subprocesses and limit execution time. The default requirement for a passing test is 256 successful cases. Proptest is feature-complete and mainly receives passive volunteer maintenance. Its minimum supported Rust version is 1.88. Partial no_std support requires a nightly compiler with alloc or std for memory allocation, and does not include failure persistence, forking, or regex-dependent features. WebAssembly compilation is highly experimental, with little substantial testing; i128 and u128 numeric strategies are unavailable on those targets. The repository contains Apache-2.0 and MIT licenses.
Good
- Shrinks failures into minimal reproducing cases.
- Supports state-machine testing.
- Persists failures for later replay.
- Includes optional forking and timeouts.
Watch out
- Maintenance is mainly passive and volunteer-based.
- no_std support requires a nightly compiler.
- no_std builds lack persistence and forking.
- WebAssembly support is highly experimental.
Who it suits
Proptest may suit Rust developers who want generated tests, minimized failure cases, or state-machine testing. Those needing no_std or WebAssembly support should account for the listed limitations.
Verdict
Proptest provides generation, shrinking, and state-machine testing for Rust, with persisted failures and optional subprocess features. Its maintenance model and constraints on no_std and WebAssembly are important considerations.
The facts
Each one read from Proptest's own pages, with the date it was checked.
What it does
- Default test count
- The default number of successful test cases required for a test to pass is 256.checked 1 Oct 2026
- Failure minimization
- When a failure is found, Proptest automatically finds a minimal test case that reproduces it.checked 1 Oct 2026
- Failure persistence
- Failing cases are persisted under a proptest-regressions directory and replayed in later test runs.checked 1 Oct 2026
- Forking and timeouts
- Optional fork and timeout features run test cases in subprocesses and limit their execution time.checked 1 Oct 2026
- Generation model
- Generation and shrinking are defined per value rather than per type, which enables flexible composition.checked 1 Oct 2026
- Input generation
- Generation and shrinking are defined per value rather than per type.checked 1 Oct 2026
- Licensing
- The repository contains Apache-2.0 and MIT licenses.checked 1 Oct 2026
- Maintenance model
- Proptest is maintained on a volunteer basis.checked 1 Oct 2026
- Maintenance status
- The crate is feature-complete and mainly receives passive maintenance.checked 1 Oct 2026
- Minimal cases
- When a failure is found, Proptest automatically finds the minimal test case that reproduces it.checked 1 Oct 2026
- no_std limitations
- The no_std build does not provide failure persistence, forking, or features depending on crates such as regex.checked 1 Oct 2026
- No-std limits
- Failure persistence, forking, and regex support are unavailable in the no_std build.checked 1 Oct 2026
- no_std support
- Proptest has partial no_std support and requires a nightly compiler with alloc or std for memory allocation.checked 1 Oct 2026
- Purpose
- Proptest is a property testing framework for Rust inspired by Python’s Hypothesis framework.checked 1 Oct 2026
- Rust version
- The current minimum supported Rust version is 1.88.checked 1 Oct 2026
- Strategies
- A strategy generates random values and shrinks them into simpler forms, and Proptest ships with a substantial strategy library.checked 1 Oct 2026
- Support
- Bug reports and questions are welcome through the project repository, and contributors are asked to include Rust version, Proptest version, and relevant operating-system details.checked 1 Oct 2026
- WebAssembly
- Proptest can compile for WebAssembly targets, but this support is highly experimental and has had little substantial testing.checked 1 Oct 2026
- WebAssembly limits
- On WebAssembly targets, numeric strategies for i128 and u128 are unavailable.checked 1 Oct 2026
Where it runs
- State-machine testing
- Proptest supports state-machine testing for systems such as database APIs and client-server interactions.checked 1 Oct 2026
Alternatives to Proptest
- 1

fast-check
Free planOpen sourceWebAPILinuxSelf-hosted7.1Free plan - 2
ScalaCheck
Free planLinuxmacOSWindows6.6Free plan - 3
Gopter
Free planLinuxSelf-hosted6.4Free plan - 4
JSVerify
Free planWebSelf-hosted6.4Free plan - 5
Racket QuickCheck
Free planLinuxmacOSWindows6.4Free plan - 6
FsCheck
Free planLinuxmacOSWindows6.3Free plan
