Add randomness pool mode for V4 UUID (#80)

* Add randomness pool mode for V4 UUID

Adds an optional randomness pool mode for Random (Version 4)
UUID generation. The pool contains random bytes read from
the random number generator on demand in batches. Enabling
the pool may improve the UUID generation throughput
significantly.

Since the pool is stored on the Go heap, this feature may
be a bad fit for security sensitive applications. That's
why it's implemented as an opt-in feature.

* fixup! document thread-safety aspects
3 files changed
tree: 13bb3c888dcf5628774b0580c5d2be85d438486d
  1. .travis.yml
  2. CONTRIBUTING.md
  3. CONTRIBUTORS
  4. dce.go
  5. doc.go
  6. go.mod
  7. hash.go
  8. json_test.go
  9. LICENSE
  10. marshal.go
  11. node.go
  12. node_js.go
  13. node_net.go
  14. README.md
  15. seq_test.go
  16. sql.go
  17. sql_test.go
  18. time.go
  19. util.go
  20. uuid.go
  21. uuid_test.go
  22. version1.go
  23. version4.go
README.md

uuid build status

The uuid package generates and inspects UUIDs based on RFC 4122 and DCE 1.1: Authentication and Security Services.

This package is based on the github.com/pborman/uuid package (previously named code.google.com/p/go-uuid). It differs from these earlier packages in that a UUID is a 16 byte array rather than a byte slice. One loss due to this change is the ability to represent an invalid UUID (vs a NIL UUID).

Install

go get github.com/google/uuid

Documentation

GoDoc

Full go doc style documentation for the package can be viewed online without installing this package by using the GoDoc site here: http://pkg.go.dev/github.com/google/uuid