1# rand_chacha 2 3[![Build Status](https://travis-ci.org/rust-random/rand.svg)](https://travis-ci.org/rust-random/rand) 4[![Build Status](https://ci.appveyor.com/api/projects/status/github/rust-random/rand?svg=true)](https://ci.appveyor.com/project/rust-random/rand) 5[![Latest version](https://img.shields.io/crates/v/rand_chacha.svg)](https://crates.io/crates/rand_chacha) 6[![Book](https://img.shields.io/badge/book-master-yellow.svg)](https://rust-random.github.io/book/) 7[![API](https://img.shields.io/badge/api-master-yellow.svg)](https://rust-random.github.io/rand/rand_chacha) 8[![API](https://docs.rs/rand_chacha/badge.svg)](https://docs.rs/rand_chacha) 9[![Minimum rustc version](https://img.shields.io/badge/rustc-1.32+-lightgray.svg)](https://github.com/rust-random/rand#rust-version-requirements) 10 11A cryptographically secure random number generator that uses the ChaCha 12algorithm. 13 14ChaCha is a stream cipher designed by Daniel J. Bernstein[^1], that we use 15as an RNG. It is an improved variant of the Salsa20 cipher family, which was 16selected as one of the "stream ciphers suitable for widespread adoption" by 17eSTREAM[^2]. 18 19The RNGs provided by this crate are implemented via the fast stream ciphers of 20the [`c2-chacha`](https://crates.io/crates/c2-chacha) crate. 21 22Links: 23 24- [API documentation (master)](https://rust-random.github.io/rand/rand_chacha) 25- [API documentation (docs.rs)](https://docs.rs/rand_chacha) 26- [Changelog](https://github.com/rust-random/rand/blob/master/rand_chacha/CHANGELOG.md) 27 28[rand]: https://crates.io/crates/rand 29[^1]: D. J. Bernstein, [*ChaCha, a variant of Salsa20*]( 30 https://cr.yp.to/chacha.html) 31 32[^2]: [eSTREAM: the ECRYPT Stream Cipher Project]( 33 http://www.ecrypt.eu.org/stream/) 34 35 36## Crate Features 37 38`rand_chacha` is `no_std` compatible when disabling default features; the `std` 39feature can be explicitly required to re-enable `std` support. Using `std` 40allows detection of CPU features and thus better optimisation. 41 42 43# License 44 45`rand_chacha` is distributed under the terms of both the MIT license and the 46Apache License (Version 2.0). 47 48See [LICENSE-APACHE](LICENSE-APACHE) and [LICENSE-MIT](LICENSE-MIT), and 49[COPYRIGHT](COPYRIGHT) for details. 50