Skip to content

euantorano/sysrandom.nim

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 

sysrandom.nim CircleCI

A simple library to generate random data, using the system's PRNG.

The following sources of randomness are used depending on platform:

Installation

sysrandom can be installed using Nimble:

nimble install sysrandom

Or add the following to your .nimble file:

# Dependencies

requires "sysrandom >= 1.1.0"

API Documentation

Usage

import sysrandom

## Make sure to close the `/dev/urandom` file on posix or close the DLL handle on Windows after you're finished generating random data
defer: closeRandom()

## Fill a buffer with x random bytes
var buffer = newSeq[byte](20)
getRandomBytes(addr buffer[0], len(buffer))

## Create an array of 10 random bytes (`array[10, byte]`)
let randomBytes = getRandomBytes(10)
echo "Generating 10 random bytes: ", repr(randomBytes)

## Get a random unsigned 32 bit integer (`uint32`) in the range 0..0xffffffff
let randomUint32 = getRandom()
echo "Random integer: ", randomUint32

## Generate a random string based upon a 32 byte array of random values, base 64 encoded
let randomString = getRandomString(32)
echo "Random string: ", randomString

About

A Nim library to generate random numbers and random ranges of bytes using the system's PRNG.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages