Package guuid generates and inspects UUIDs.
This package is a wrapper for most common used UUID package: https://github.com/google/uuid
This package supports the following UUID versions: Version 1, based on timestamp and MAC address (RFC-4122) Version 2, based on timestamp, MAC address and POSIX UID/GID (DCE 1.1) Version 3, based on MD5 hashing of a named value (RFC-4122) Version 4, based on random numbers (RFC-4122) Version 5, based on SHA-1 hashing of a named value (RFC-4122)
UUID DCE domains.
UUID representation compliant with specification described in RFC 4122.
New creates a new random UUID or panics. It returns a Random (Version 4) UUID.
NewDCEGroup returns a DCE Security (Version 2) UUID in the group domain with the id returned by os.Getgid.
NewDCEPerson returns a DCE Security (Version 2) UUID in the person domain with the id returned by os.Getuid.
NewMD5 returns a new MD5 (Version 3) UUID based on the supplied name space and data. It is the same as calling:
NewHash(md5.New(), space, data, 3)
NewRandom returns a Random (Version 4) UUID.
The strength of the UUIDs is based on the strength of the crypto/rand package.
A note about uniqueness derived from the UUID Wikipedia entry:
Randomly generated UUIDs have 122 random bits. One's annual risk of being hit by a meteorite is estimated to be one chance in 17 billion, that means the probability is about 0.00000000006 (6 × 10−11), equivalent to the odds of creating a few tens of trillions of UUIDs in a year and having one duplicate.
NewSHA1 returns a new SHA1 (Version 5) UUID based on the supplied name space and data. It is the same as calling:
NewHash(sha1.New(), space, data, 5)
NewUUID returns a Version 1 UUID based on the current NodeID and clock sequence, and the current time. If the NodeID has not been set by SetNodeID or SetNodeInterface then it will be set automatically. If the NodeID cannot be set NewUUID returns nil. If clock sequence has not been set by SetClockSequence then it will be set automatically. If GetTime fails to return the current NewUUID returns nil and an error.
In most cases, New should be used.