getrandom/README.md

68 lines
2.0 KiB
Markdown
Raw Normal View History

2019-03-16 15:37:43 +00:00
# getrandom
2019-01-19 12:56:20 +00:00
[![Build Status](https://travis-ci.org/rust-random/getrandom.svg?branch=master)](https://travis-ci.org/rust-random/getrandom)
[![Build Status](https://ci.appveyor.com/api/projects/status/github/rust-random/getrandom?svg=true)](https://ci.appveyor.com/project/rust-random/getrandom)
[![Crate](https://img.shields.io/crates/v/getrandom.svg)](https://crates.io/crates/getrandom)
2019-03-16 15:37:43 +00:00
[![Documentation](https://docs.rs/getrandom/badge.svg)](https://docs.rs/getrandom)
[![Dependency status](https://deps.rs/repo/github/rust-random/getrandom/status.svg)](https://deps.rs/repo/github/rust-random/getrandom)
2019-01-19 12:56:20 +00:00
2019-03-16 15:37:43 +00:00
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`].
2019-03-22 21:45:22 +03:00
[`rand`]: https://crates.io/crates/rand
2019-01-19 12:56:20 +00:00
## Usage
Add this to your `Cargo.toml`:
```toml
[dependencies]
getrandom = "0.1"
```
Then invoke the `getrandom` function:
```rust
fn get_random_buf() -> Result<[u8; 32], getrandom::Error> {
let mut buf = [0u8; 32];
getrandom::getrandom(&mut buf)?;
buf
}
```
2019-01-19 12:56:20 +00:00
## Features
2019-03-16 15:37:43 +00:00
This library is `no_std` compatible, but uses `std` on most platforms.
2019-03-12 17:39:20 +00:00
The `log` library is supported as an optional dependency. If enabled, error
reporting will be improved on some platforms.
2019-04-06 16:01:01 +03:00
For WebAssembly (`wasm32`), WASI and Emscripten targets are supported directly; otherwise
one of the following features must be enabled:
- [`wasm-bindgen`](https://crates.io/crates/wasm_bindgen)
- [`stdweb`](https://crates.io/crates/stdweb)
2019-03-16 15:37:43 +00:00
## Minimum Supported Rust Version
2019-02-25 10:26:48 +00:00
2019-03-22 21:45:22 +03:00
This crate requires Rust 1.32.0 or later.
2019-02-25 10:26:48 +00:00
2019-01-19 12:56:20 +00:00
# License
2019-03-16 15:37:43 +00:00
The `getrandom` library is distributed under either of
* [Apache License, Version 2.0](LICENSE-APACHE)
* [MIT license](LICENSE-MIT)
at your option.
2019-01-19 12:56:20 +00:00