#random #generator #no-alloc

no-std acorn_prng

A no_std, 0 dependency, pseudo-random number generator based on the ACORN algorithm

3 stable releases

Uses new Rust 2024

4.0.0 Sep 21, 2025
3.0.1 Jul 20, 2023
3.0.0 Dec 12, 2022
2.0.1 Dec 10, 2022
1.0.1 Dec 8, 2022

#1942 in Algorithms

ISC license

32KB
380 lines

ACORN Pseudo-random Number Generator

This pseudo-random number generator is based on the ACORN algorithm.

It is a #![no_std] crate that does not require alloc and has no dependencies.

The numbers generated from this prng are not considered cryptographically secure.

Usage

Create a generator by specifying both the Order and the Seed. Allowing the user of this library to specify the starting data makes reproducability possible. If you do not require reproducable pseudo-random numbers then using the current time converted into a u128 for the Seed should provide sufficient randomness.

Then you can generate either a number of a fixed digit length or a number bewteen a specified range (inclusive).

Please see the Acorn struct documentation for examples.


acorn_prng

A no_std, 0 dependency, pseudo-random number generator library based on the ACORN algorithm. Not cryptographically secure.

Using this library

Add the following to the [dependencies] section of your Config.toml:

acorn_prng = "4.0.0"

Documentation

Documentation can be found here: https://docs.rs/acorn_prng

Acknowledgements

The ACORN algorithm is described here: http://acorn.wikramaratna.org/concept.html

No runtime deps