2.0.3 • Published 5 years ago
xoshiro v2.0.3
Xoshiro
What is this?
A pseudo-random-number-generator module implemented in N-API. Here is all about the algorithms.
Requirements
- CMake
 - A proper C/C++ compiler toolchain of the given platform
- Windows:
- Visual C++ Build Tools or a recent version of Visual C++ will do (the free Community version works well)
 
 - Unix/Posix:
- Clang or GCC
 - Make
 
 
 - Windows:
 
Installation
Just run this command:
npm install --save xoshiroUsage
const xoshiro = require('xoshiro');
const crypto = require('crypto');
// create a PRNG with an algorithm and a seed
const seed = crypto.randomBytes(32);
const prng = xoshiro.create('256+', seed);
// generate a random unsigned 32-bit integer
console.log(prng.roll());
// store the current state
let s = prng.state
// generate a random number
const x = prng.roll()
// restore the state
prng.state = s
// generate a random number from the previous state
const y = prng.roll()
// and they should be equal
console.log(x === y)  // -> trueSupported algorithms
'256+'xoshiro256+, requires the seed to be of at least 32 bytes'256++'xoshiro256++, requires the seed to be of at least 32 bytes'256**'xoshiro256**, requires the seed to be of at least 32 bytes'512+'xoshiro512+, requires the seed to be of at least 64 bytes'512++'xoshiro512++, requires the seed to be of at least 64 bytes'512**'xoshiro512**, requires the seed to be of at least 64 bytes
Note: In order to make it work, the seed used to initialize the PRNG should not be all 0's.