# Entro Spin
## Description
Entro Spin is a 64-bit, seedless, non-deterministic true random number generator algorithm.
## Code Example
The following code demonstrates an example implementation included in this package.
``` rust
extern crate entro_spin;
use entro_spin::entro_spin::entro_spin;
fn main() {
let mut i: usize = 0;
while i != 10 {
println!("{}", entro_spin());
i += 1;
}
}
```
To test the Cargo package, execute the following command.
``` console
cargo test
```
## Explanation
[EntroCraft](https://entrocraft.com/) maintains this open-source package with the permissive MIT license.
The only valid [source of true entropy](https://entrocraft.com/laboratory/hardware-generated-noise-is-an-invalid-source-of-true-entropy/) is high-resolution, linear time with a significantly-higher precision relative to the precision of the random result.
With this in mind, each digit in each randomly-generated 64-bit number is randomized with [Entro Shift](https://entrocraft.com/dungeon/randomization-algorithms/entro-shift/) and [UNIX_EPOCH](https://doc.rust-lang.org/std/time/constant.UNIX_EPOCH.html) with [nanosecond precision](https://doc.rust-lang.org/std/time/struct.Duration.html#method.as_nanos).
High-resolution system time with a minimum precision of milliseconds is required, although nanosecond precision is recommended.
It relies on [SystemTime](https://doc.rust-lang.org/std/time/struct.SystemTime.html), so a system clock failure translates to a program runtime failure.
Converting [Entro Shift](https://entrocraft.com/dungeon/randomization-algorithms/entro-shift/) code in this package from Rust to another programming language is discouraged and may be subject to either [purchasing a license](https://entrocraft.com/dungeon/randomization-algorithms/entro-shift/#license) or attributing other OSI licenses.