Package: golang-github-nebulouslabs-fastrand-dev
Source: golang-github-nebulouslabs-fastrand
Version: 0.0~git20181203.6fb6489-4
Architecture: all
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian Go Packaging Team <team+pkg-go@tracker.debian.org>
Installed-Size: 37
Depends: golang-golang-x-crypto-dev
Section: golang
Priority: optional
Multi-Arch: foreign
Homepage: https://github.com/NebulousLabs/fastrand
Description: 10x faster than crypto/rand
 fastrand GoDoc
 (https://godoc.org/github.com/NebulousLabs/fastrand) Go Report Card
 (https://goreportcard.com/report/github.com/NebulousLabs/fastrand)
 .
 go get github.com/NebulousLabs/fastrand
 .
 fastrand implements a cryptographically secure pseudorandom number
 generator.  The generator is seeded using the system's default entropy
 source, and thereafter produces random values via repeated hashing. As
 a result, fastrand can generate randomness much faster than crypto/rand,
 and generation cannot fail beyond a potential panic during init().
 .
 Unlike both crypto/rand and math/rand, fastrand provides significant
 speedups when called using parallelism. In fact, fastrand can even
 outperform math/rand when using enough threads.
 .
 Packages uses something similar to the Fortuna algorithm, which is used
 in FreeBSD as its /dev/random. The techniques used by fastrand are known
 to be secure, however the specific implementation has not been reviewed
 extensively. Use with caution.
 .
 The general strategy is to use crypto/rand at init to get 32 bytes of
 strong entropy. From there, the entropy concatenated to a counter and
 hashed repeatedly, providing a new 64 bytes of random output each time
 the counter is incremented. The counter is 16 bytes, which provides
 strong guarantees that a cycle will not be seen throughout the lifetime
 of the program.
 .
 The sync/atomic package is used to ensure that multiple threads calling
 fastrand concurrently are always guaranteed to end up with unique
 counters, allowing callers to see speedups by calling concurrently,
 without compromising security.
