#random #generator #seed

no-std acorn_prng

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

2 stable releases

3.0.1 Jul 20, 2023
3.0.0 Dec 12, 2022
2.0.1 Dec 10, 2022
2.0.0 Dec 9, 2022
1.0.1 Dec 8, 2022

#1720 in Algorithms

Download history 219/week @ 2024-07-19 219/week @ 2024-07-26 181/week @ 2024-08-02 202/week @ 2024-08-09 171/week @ 2024-08-16 214/week @ 2024-08-23 144/week @ 2024-08-30 173/week @ 2024-09-06 179/week @ 2024-09-13 242/week @ 2024-09-20 262/week @ 2024-09-27 233/week @ 2024-10-04 234/week @ 2024-10-11 285/week @ 2024-10-18 313/week @ 2024-10-25 267/week @ 2024-11-01

1,135 downloads per month

ISC license

31KB
353 lines

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 = "3.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


lib.rs:

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.

No runtime deps