no_std Support

Proptest has partial support for being used in no_std contexts.

You will need a nightly compiler version. In your Cargo.toml, adjust the Proptest dependency to look something like this:

version = "proptestVersion"

# Opt out of the `std` feature
default-features = false

# alloc: Use the `alloc` crate directly. Proptest has a hard requirement on
# memory allocation, so either this or `std` is needed.
# unstable: Enable use of nightly-only compiler features.
features = ["alloc", "unstable"]

Some APIs are not available in the no_std build. This includes functionality which necessarily needs std such as failure persistence and forking, as well as features depending on other crates which do not support no_std usage, such as regex support.

The no_std build may not have access to an entropy source (one exception are x86-64 machines that support rdrand, in this case the library can be compiled with the hardware-rng feature to get random numbers). If no entropy source is available, every TestRunner (i.e., every #[test] when using the proptest! macro) uses a single hard-coded seed. For complex inputs, it may be a good idea to increase the number of test cases to compensate. The hard-coded seed is not contractually guaranteed and may change between Proptest releases without notice.

To see an accurate representation of what APIs are available in a no_std environment, refer to the rustdocs for the no_std build instead of the usual reference.