#random #facade #rand #embedded

no-std rand-facade

A global mutex-based random facade for no_std compatible libraries that require an initialised random number generator

4 releases

0.2.0 Jul 6, 2020
0.1.2 Jul 4, 2020
0.1.1 Jul 4, 2020
0.1.0 Jul 3, 2020

#34 in #facade


Used in lpwan

MIT license

11KB
129 lines

rand-facade

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.

Usage

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

Features

  • 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

Status

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

Dependencies

~65–375KB