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