guuid

package module
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 2, 2022 License: MIT Imports: 2 Imported by: 7

README

guuid

Go Doc License

This package is a wrapper for most common used UUID package: https://github.com/google/uuid

It supports the following UUID versions:

  1. Version 1, based on timestamp and MAC address (RFC-4122)
  2. Version 2, based on timestamp, MAC address and POSIX UID/GID (DCE 1.1)
  3. Version 3, based on MD5 hashing of a named value (RFC-4122)
  4. Version 4, based on random numbers (RFC-4122)
  5. Version 5, based on SHA-1 hashing of a named value (RFC-4122)

Installation

go get -u -v github.com/gogf/guuid@master

tip: when the guuid version is greater than v1.0.0, the dependent GoFrame version is v2.1.1

License

The guuid is open-sourced software licensed under the MIT license.

Documentation

Overview

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

Constants

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

UUID DCE domains.

Variables

This section is empty.

Functions

This section is empty.

Types

type UUID

type UUID = uuid.UUID

UUID representation compliant with specification described in RFC 4122.

func New

func New() UUID

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

func NewDCEGroup

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

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

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

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

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

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL