- High quality, non-cryptographic, medium-fast RNGs.
- "Trivially strong" algorithms combining LCGs with a strong output hash.
- 64-bit output, 192-bit (Krull64) or 256-bit (Krull65) state.
- 2**64 (Krull64) or 2**128 (Krull65) pairwise independent streams of period 2**128.
- Streams are equidistributed with each 64-bit number appearing 2**64 times.
- Full state space with no bad states and no bad seeds.
- Random access inside streams.
- No unsafe code and no
std
required. - LCGs are run economically with 65-bit multipliers using 64-to-128-bit widening multiplies.
Krull64/65 are intended as non-cryptographic workhorse RNGs suitable for simulations and procedural content generation that are solid, easy to use, and have a full feature set.
This crate depends on rand_core, which is a part of the Rand project.
Serde support is opt-in, so enable the serde
feature if you need it.
MIT