A Rust library for retrieving random data from (operating) system source. It is
assumed that system always provides high-quality cryptographically secure random
data, ideally backed by hardware entropy sources. This crate derives its name
getrandom function, but is cross platform, roughly supporting
the same set of platforms as Rust's
This is a low-level API. Most users should prefer using high-level random-number
Add this to your
 = "0.1"
Then invoke the
This library is
no_std for every supported target. However, getting randomness
usually requires calling some external system API. This means most platforms
will require linking against system libraries (i.e.
libc for Unix,
Advapi32.dll for Windows, Security framework on iOS, etc...).
log library is supported as an optional dependency. If enabled, error
reporting will be improved on some platforms.
wasm32-unknown-unknown target, one of the following features should be
By default, compiling
getrandom for an unsupported target will result in
a compilation error. If you want to build an application which uses
for such target, you can either:
[patch]section in your
Cargo.tomlto switch to a custom implementation with a support of your target.
- Enable the
dummyfeature to have getrandom use an implementation that always fails at run-time on unsupported targets.
Minimum Supported Rust Version
This crate requires Rust 1.32.0 or later.
getrandom library is distributed under either of
at your option.