Crate cap_rand

source ·
Expand description

Capability-based random number generators

This corresponds to rand.

Capability-based APIs represent access to external resources as values which can be passed around between different parts of a program.

Two notable features are the OsRng and CapRng types, which wrap up access to the operating system entropy source in capability values.

This crate uses the existing rand::SeedableRng trait rather than having its own version, however while rand::SeedableRng is mostly just a pure interface, it provides a from_entropy function which directly reads from the operating system entropy source. To preserve the capability-based interface, avoid using rand::SeedableRng’s from_entropy function on any of the types that implement that trait; use std_rng_from_entropy instead.


  • Generating random samples from probability distributions
  • Convenience re-export of common members.
  • Random number generators and adapters.
  • Sequence-related functionality


  • Instances of this AmbientAuthority type serve to indicate that the ambient_authority function has been called, indicating that the user has explicitly opted into using ambient authority.
  • Error type of random number generators


  • A marker trait used to indicate that an RngCore or BlockRngCore implementation is supposed to be cryptographically secure.
  • Types which may be filled with random data
  • An automatically-implemented extension trait on RngCore providing high-level generic methods for sampling values and other convenience methods.
  • The core of a random number generator.
  • A random number generator that can be explicitly seeded.


  • Return an AmbientAuthority value, which allows use of functions that include an AmbientAuthority argument.
  • Generates a random value using the thread-local random number generator.
  • Retrieve the standard random number generator, seeded by the system.
  • Retrieve the lazily-initialized thread-local random number generator, seeded by the system.