• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

testdata/corpus/H30-Dec-2020-

.gitignoreH A D30-Dec-2020244

.travis.ymlH A D30-Dec-2020382

LICENSEH A D30-Dec-20201.1 KiB

README.mdH A D30-Dec-20204.3 KiB

codec.goH A D30-Dec-20206.2 KiB

codec_test.goH A D30-Dec-20208.2 KiB

fuzz.goH A D30-Dec-20201.8 KiB

generator.goH A D30-Dec-20207.4 KiB

generator_test.goH A D30-Dec-20208.4 KiB

sql.goH A D30-Dec-20202.9 KiB

sql_test.goH A D30-Dec-20207.4 KiB

uuid.goH A D30-Dec-20207.5 KiB

uuid_test.goH A D30-Dec-20207.5 KiB

README.md

1# UUID
2
3[![License](https://img.shields.io/github/license/gofrs/uuid.svg)](https://github.com/gofrs/uuid/blob/master/LICENSE)
4[![Build Status](https://travis-ci.org/gofrs/uuid.svg?branch=master)](https://travis-ci.org/gofrs/uuid)
5[![GoDoc](http://godoc.org/github.com/gofrs/uuid?status.svg)](http://godoc.org/github.com/gofrs/uuid)
6[![Coverage Status](https://codecov.io/gh/gofrs/uuid/branch/master/graphs/badge.svg?branch=master)](https://codecov.io/gh/gofrs/uuid/)
7[![Go Report Card](https://goreportcard.com/badge/github.com/gofrs/uuid)](https://goreportcard.com/report/github.com/gofrs/uuid)
8
9Package uuid provides a pure Go implementation of Universally Unique Identifiers
10(UUID) variant as defined in RFC-4122. This package supports both the creation
11and parsing of UUIDs in different formats.
12
13This package supports the following UUID versions:
14* Version 1, based on timestamp and MAC address (RFC-4122)
15* Version 3, based on MD5 hashing of a named value (RFC-4122)
16* Version 4, based on random numbers (RFC-4122)
17* Version 5, based on SHA-1 hashing of a named value (RFC-4122)
18
19## Project History
20
21This project was originally forked from the
22[github.com/satori/go.uuid](https://github.com/satori/go.uuid) repository after
23it appeared to be no longer maintained, while exhibiting [critical
24flaws](https://github.com/satori/go.uuid/issues/73). We have decided to take
25over this project to ensure it receives regular maintenance for the benefit of
26the larger Go community.
27
28We'd like to thank Maxim Bublis for his hard work on the original iteration of
29the package.
30
31## License
32
33This source code of this package is released under the MIT License. Please see
34the [LICENSE](https://github.com/gofrs/uuid/blob/master/LICENSE) for the full
35content of the license.
36
37## Recommended Package Version
38
39We recommend using v2.0.0+ of this package, as versions prior to 2.0.0 were
40created before our fork of the original package and have some known
41deficiencies.
42
43## Installation
44
45It is recommended to use a package manager like `dep` that understands tagged
46releases of a package, as well as semantic versioning.
47
48If you are unable to make use of a dependency manager with your project, you can
49use the `go get` command to download it directly:
50
51```Shell
52$ go get github.com/gofrs/uuid
53```
54
55## Requirements
56
57Due to subtests not being supported in older versions of Go, this package is
58only regularly tested against Go 1.7+. This package may work perfectly fine with
59Go 1.2+, but support for these older versions is not actively maintained.
60
61## Go 1.11 Modules
62
63As of v3.2.0, this repository no longer adopts Go modules, and v3.2.0 no longer has a `go.mod` file.  As a result, v3.2.0 also drops support for the `github.com/gofrs/uuid/v3` import path. Only module-based consumers are impacted.  With the v3.2.0 release, _all_ gofrs/uuid consumers should use the `github.com/gofrs/uuid` import path.
64
65An existing module-based consumer will continue to be able to build using the `github.com/gofrs/uuid/v3` import path using any valid consumer `go.mod` that worked prior to the publishing of v3.2.0, but any module-based consumer should start using the `github.com/gofrs/uuid` import path when possible and _must_ use the `github.com/gofrs/uuid` import path prior to upgrading to v3.2.0.
66
67Please refer to [Issue #61](https://github.com/gofrs/uuid/issues/61) and [Issue #66](https://github.com/gofrs/uuid/issues/66) for more details.
68
69## Usage
70
71Here is a quick overview of how to use this package. For more detailed
72documentation, please see the [GoDoc Page](http://godoc.org/github.com/gofrs/uuid).
73
74```go
75package main
76
77import (
78	"log"
79
80	"github.com/gofrs/uuid"
81)
82
83// Create a Version 4 UUID, panicking on error.
84// Use this form to initialize package-level variables.
85var u1 = uuid.Must(uuid.NewV4())
86
87func main() {
88	// Create a Version 4 UUID.
89	u2, err := uuid.NewV4()
90	if err != nil {
91		log.Fatalf("failed to generate UUID: %v", err)
92	}
93	log.Printf("generated Version 4 UUID %v", u2)
94
95	// Parse a UUID from a string.
96	s := "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
97	u3, err := uuid.FromString(s)
98	if err != nil {
99		log.Fatalf("failed to parse UUID %q: %v", s, err)
100	}
101	log.Printf("successfully parsed UUID %v", u3)
102}
103```
104
105## References
106
107* [RFC-4122](https://tools.ietf.org/html/rfc4122)
108* [DCE 1.1: Authentication and Security Services](http://pubs.opengroup.org/onlinepubs/9696989899/chap5.htm#tagcjh_08_02_01_01)
109