Skip to content

kevinburke/go.uuid

 
 

Repository files navigation

UUID package for Go language

This is a fork of satori/go.uuid that won't change the existing API. I am committed to maintaining this fork and responding to bug reports as appropriate.

Note the upstream satori/go.uuid has a critical error that may lead to non-random UUID's. This fork is not vulnerable to that issue.

Build Status Coverage Status GoDoc

This package provides a pure Go implementation of Universally Unique Identifiers (UUIDs). Supports 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)

The most common UUID used today is v4, which provides a random sequence of 16 bytes.

Installation

Use the go command:

$ go get github.com/kevinburke/go.uuid

Requirements

UUID package requires Go >= 1.5.

Example

package main

import (
	"fmt"

	"github.com/kevinburke/go.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)
}

Documentation

Documentation is hosted at GoDoc.

Links

Copyright

Copyright (C) 2013-2018 by Maxim Bublis b@codemonkey.ru. Copyright 2018 Kevin Burke.

UUID package is released under the MIT License. See LICENSE for details.

Packages

No packages published

Languages

  • Go 98.5%
  • Makefile 1.5%