getrandom/README.md
2019-03-12 17:39:20 +00:00

1.8 KiB

Rand

Build Status Build Status Crate API

A Rust library to securely get random entropy. 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 a high-level random-number library like Rand or a cryptography library.

Usage

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
}

Features

This library is no_std compatible on SGX but requires 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), Enscripten targets are supported directly; otherwise one of the following features must be enabled:

Versions

This crate requires Rustc version 1.28.0 or later due to usage of NonZeroU32.

License

The getrandom library is distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE and LICENSE-MIT, and COPYRIGHT for details.