rand-facade 0.2.0

A global mutex-based random facade for no_std compatible libraries that require an initialised random number generator
docs.rs failed to build rand-facade-0.2.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: rand-facade-0.1.2


An experimental global facade for rand::RngCore to support use of initialised random number generators in no_std capable libraries and projects, without needing to specify a given random generator within the library.

This allows you to initialise and maintain a physical Random Number Generator (RNG) on no_std platforms, while allowing the sharing a global RNG (if required) or falling through to the default OsRng on std platforms.

This is intended to be used as a dependency for relevant libraries / projects that require RNGs, and allows modes to be swapped using the feature flags described below.


Include by adding rand-facade = "0.1.0" to your Cargo.toml.


  • os_rng disables binding and falls through to the default rand::rng::OsRng, this is a sensible default for most apps
  • std enables global Rng binding using std::sync::Mutex
  • cortex_m enables global Rng binding using cortex_m::Mutex


This is a work in progress! Currently this works with std and cortex-m platforms.

GitHub tag Build Status Crates.io Docs.rs

Open Issues