package
0.0.0-20200628105730-7179885c4902
Repository: https://github.com/exlinc/golang-utils.git
Documentation: pkg.go.dev

# README

UUID package for Go language

Borrows heavily from https://github.com/satori/go.uuid

This package provides pure Go implementation of Universally Unique Identifier (UUID). Supported both creation and parsing of UUIDs.

With 100% test coverage and benchmarks out of box.

Supported 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 (RFC 4122)
  • Version 4, based on random numbers (RFC 4122)
  • Version 5, based on SHA-1 hashing (RFC 4122)

Requirements

UUID package requires Go >= 1.2.

Example

package main

import (
	"fmt"
	"github.com/exlinc/golang-utils/uuid"
)

func main() {
	// Creating UUID Version 4
	u1 := uuid.NewV4()
	fmt.Printf("UUIDv4: %s\n", u1)

	// Parsing UUID from string input
	u2, err := uuid.FromString("6ba7b810-9dad-11d1-80b4-00c04fd430c8")
	if err != nil {
		fmt.Printf("Something gone wrong: %s", err)
	}
	fmt.Printf("Successfully parsed: %s", u2)
}

Links

# Functions

And returns result of binary AND of two UUIDs.
Equal returns true if u1 and u2 equals, otherwise returns false.
FromBytes returns UUID converted from raw byte slice input.
FromBytesOrNil returns UUID converted from raw byte slice input.
FromString returns UUID parsed from string input.
FromStringOrNil returns UUID parsed from string input.
NewV1 returns UUID based on current timestamp and MAC address.
NewV2 returns DCE Security UUID based on POSIX UID/GID.
NewV3 returns UUID based on MD5 hash of namespace UUID and name.
NewV4 returns random generated UUID.
NewV5 returns UUID based on SHA-1 hash of namespace UUID and name.
Or returns result of binary OR of two UUIDs.

# Constants

UUID DCE domains.
UUID DCE domains.
UUID DCE domains.
UUID layout variants.
UUID layout variants.
UUID layout variants.
UUID layout variants.

# Variables

Predefined namespace UUIDs.
Predefined namespace UUIDs.
Predefined namespace UUIDs.
Predefined namespace UUIDs.
The nil UUID is special form of UUID that is specified to have all 128 bits set to zero.

# Structs

NullUUID can be used with the standard sql package to represent a UUID value that can be NULL in the database.

# Type aliases

UUID representation compliant with specification described in RFC 4122.