wyrand 0.1.2

A fast & portable non-cryptographic pseudorandom number generator and hashing algorithm
Documentation

WyRand-rs

CI License Cargo Documentation

A fast & portable non-cryptographic pseudorandom number generator written in Rust, and optionally, the hashing algorithm as well.

The implementations for both the PRNG and hasher are based on the final v4 C implementation wyhash, a simple and fast hasher but not cryptographically secure. It's known to be extremely fast and performant while still having great statistical properties.

This crate can be used on its own or be integrated with rand_core/rand, and it is no-std compatible. Minimum compatible Rust version is 1.60. This crate is also implemented with no unsafe code via #![forbid(unsafe_code)].

Example

Generate a random value:

use wyrand::WyRand;

// Provide a seed to the PRNG
let mut rng = WyRand::new(Default::default());

let value = rng.rand();

Features

The crate will always export WyRand and will do so when set as default-features = false in the Cargo.toml. By default, it will have the rand_core & debug features enabled.

  • rand_core - Enables support for rand_core, implementing RngCore & SeedableRng on WyRand.
  • debug - Enables core::fmt::Debug implementation for WyRand.
  • serde1 - Enables Serialize and Deserialize derives on WyRand.
  • hash - Enables core::hash::Hash implementation for WyRand.
  • wyhash - Enables WyHash, a fast & portable hashing algorithm. Based on the final v4 C implementation.

License

Licensed under either of

at your option.