Rand

Build Status Build Status Latest version Documentation Minimum rustc version

A Rust library for random number generation.

Rand provides utilities to generate random numbers, to convert them to useful types and distributions, and some randomness-related algorithms.

The core random number generation traits of Rand live in the rand_core crate; this crate is most useful when implementing RNGs.

API reference: master branch, by release.

Usage

Add this to your Cargo.toml:

toml [dependencies] rand = "0.5"

and this to your crate root:

```rust extern crate rand;

use rand::prelude::*;

// basic usage with random(): let x: u8 = random(); println!("{}", x);

let y = random::(); println!("{}", y);

if random() { // generates a boolean println!("Heads!"); }

// normal usage needs both an RNG and a function to generate the appropriate // type, range, distribution, etc. let mut rng = threadrng(); if rng.gen() { // random bool let x: f64 = rng.gen(); // random number in range (0, 1) println!("x is: {}", x); let char = rng.gen::(); // Sometimes you need type annotation println!("char is: {}", char); println!("Number from 0 to 9: {}", rng.genrange(0, 10)); } ```

Functionality

The Rand crate provides:

Versions

Version 0.5 is the latest version and contains many breaking changes. See the Upgrade Guide for guidance on updating from previous versions.

Version 0.4 was released in December 2017. It contains almost no breaking changes since the 0.3 series.

For more details, see the changelog.

Rust version requirements

The 0.5 release of Rand requires Rustc version 1.22 or greater. Rand 0.4 and 0.3 (since approx. June 2017) require Rustc version 1.15 or greater. Subsets of the Rand code may work with older Rust versions, but this is not supported.

Travis CI always has a build with a pinned version of Rustc matching the oldest supported Rust release. The current policy is that this can be updated in any Rand release if required, but the change must be noted in the changelog.

Crate Features

Rand is built with only the std feature anabled by default. The following optional features are available:

no_std mode is activated by setting default-features = false; this removes functionality depending on std:

License

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

See LICENSE-APACHE and LICENSE-MIT for details.