#generator #seed #random

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

#2350 in Algorithms

Download history 418/week @ 2024-11-16 275/week @ 2024-11-23 253/week @ 2024-11-30 253/week @ 2024-12-07 209/week @ 2024-12-14 34/week @ 2024-12-21 58/week @ 2024-12-28 226/week @ 2025-01-04 160/week @ 2025-01-11 178/week @ 2025-01-18 329/week @ 2025-01-25 316/week @ 2025-02-01 291/week @ 2025-02-08 256/week @ 2025-02-15 387/week @ 2025-02-22 243/week @ 2025-03-01

1,214 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