2.0.5 • Published 3 years ago

@apocentre/xoshiro v2.0.5

Weekly downloads
7
License
MIT
Repository
github
Last release
3 years ago

Xoshiro

Node.js CI npm version

Apocentre Fork

This fork makes this package compatible with the BC-UR specification for use with the 256** algorithm.

What is this?

A pseudo-random-number-generator module implemented in N-API. Here is all about the algorithms.

Requirements

Installation

Just run this command:

yarn add @apocentre/xoshiro

Usage

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
const 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)  // -> true

Supported 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.

2.0.5

3 years ago

2.0.4

3 years ago

2.0.3

3 years ago