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

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
  4. dce.go
  5. doc.go
  6. go.mod
  7. hash.go
  8. json_test.go
  10. marshal.go
  11. node.go
  12. node_js.go
  13. node_net.go
  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

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 package (previously named 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).


go get



Full go doc style documentation for the package can be viewed online without installing this package by using the GoDoc site here: