Skip to content

A Rust library for random number generation.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

rust-random/rand

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Jethro Beekman
Jul 10, 2016
e8f08a6 · Jul 10, 2016
Oct 24, 2015
Dec 19, 2015
Jul 10, 2016
Feb 6, 2015
Aug 30, 2015
Jul 10, 2016
Feb 3, 2015
Feb 3, 2015
Dec 10, 2015
Jul 31, 2015

Repository files navigation

rand

A Rust library for random number generators and other randomness functionality.

Build Status Build status

Documentation

Usage

Add this to your Cargo.toml:

[dependencies]
rand = "0.3"

and this to your crate root:

extern crate rand;

Examples

There is built-in support for a random number generator (RNG) associated with each thread stored in thread-local storage. This RNG can be accessed via thread_rng, or used implicitly via random. This RNG is normally randomly seeded from an operating-system source of randomness, e.g. /dev/urandom on Unix systems, and will automatically reseed itself from this source after generating 32 KiB of random data.

let tuple = rand::random::<(f64, char)>();
println!("{:?}", tuple)
use rand::Rng;

let mut rng = rand::thread_rng();
if rng.gen() { // random bool
    println!("i32: {}, u32: {}", rng.gen::<i32>(), rng.gen::<u32>())
}

It is also possible to use other RNG types, which have a similar interface. The following uses the "ChaCha" algorithm instead of the default.

use rand::{Rng, ChaChaRng};

let mut rng = rand::ChaChaRng::new_unseeded();
println!("i32: {}, u32: {}", rng.gen::<i32>(), rng.gen::<u32>())