guuid: github.com/gogf/guuid Index | Files

package guuid

import "github.com/gogf/guuid"

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)

Index

Package Files

guuid.go

Constants

const (
    DomainPerson = uuid.Domain(0)
    DomainGroup  = uuid.Domain(1)
    DomainOrg    = uuid.Domain(2)
)

UUID DCE domains.

type UUID Uses

type UUID = uuid.UUID

UUID representation compliant with specification described in RFC 4122.

func New Uses

func New() UUID

New creates a new random UUID or panics. It returns a Random (Version 4) UUID.

func NewDCEGroup Uses

func NewDCEGroup() (UUID, error)

NewDCEGroup returns a DCE Security (Version 2) UUID in the group domain with the id returned by os.Getgid.

NewDCESecurity(Group, uint32(os.Getgid()))

func NewDCEPerson Uses

func NewDCEPerson() (UUID, error)

NewDCEPerson returns a DCE Security (Version 2) UUID in the person domain with the id returned by os.Getuid.

NewDCESecurity(Person, uint32(os.Getuid()))

func NewMD5 Uses

func NewMD5(space UUID, data []byte) UUID

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)

func NewRandom Uses

func NewRandom() (UUID, error)

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.

func NewSHA1 Uses

func NewSHA1(space UUID, data []byte) UUID

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)

func NewUUID Uses

func NewUUID() (UUID, error)

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.

Package guuid imports 2 packages (graph). Updated 2020-05-21. Refresh now. Tools for package owners.