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 from Linux‘s getrandom
function, but is cross platform, roughly supporting the same set of platforms as Rust’s std
lib.
This is a low-level API. Most users should prefer using high-level random-number library like rand
.
Add this to your Cargo.toml
:
[dependencies] getrandom = "0.1"
Then invoke the getrandom
function:
fn get_random_buf() -> Result<[u8; 32], getrandom::Error> { let mut buf = [0u8; 32]; getrandom::getrandom(&mut buf)?; buf }
This library is no_std
compatible, but uses std
on most platforms.
The log
library is supported as an optional dependency. If enabled, error reporting will be improved on some platforms.
For WebAssembly (wasm32
), WASI and Emscripten targets are supported directly; otherwise one of the following features must be enabled:
This crate requires Rust 1.32.0 or later.
The getrandom
library is distributed under either of
at your option.