Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Go
  3. uuid

uuid

MITGov5.4.0

A pure Go implementation of UUIDs (RFC-9562) supporting versions 1-8 for generation and parsing.

GitHubGitHub
1.8k stars124 forks0 contributors

What is uuid?

gofrs/uuid is a pure Go implementation of Universally Unique Identifiers (UUIDs) compliant with RFC-9562. It provides reliable generation and parsing of UUIDs across versions 1, 3, 4, 5, 6, 7, and 8, ensuring data uniqueness and interoperability in distributed systems.

Target Audience

Go developers building distributed systems, databases, or applications that require globally unique identifiers for entities like database records, session tokens, or message IDs.

Value Proposition

Developers choose this package for its strict RFC-9562 compliance, active maintenance as a community-driven fork, and lack of external dependencies, offering a correct and secure alternative to unmaintained UUID libraries in Go.

Overview

A UUID package for Go

Use Cases

Best For

  • Generating random UUIDs (version 4) for unique identifiers in Go applications.
  • Creating timestamp-based, k-sortable UUIDs (versions 6 and 7) for database indexing and chronological ordering.
  • Parsing UUIDs from strings in various formats with strict RFC-9562 validation.
  • Implementing custom UUID formats (version 8) for specialized use cases.
  • Ensuring interoperability in distributed systems by using standards-compliant UUID generation.
  • Migrating from the unmaintained github.com/satori/go.uuid package to a maintained alternative.

Not Ideal For

  • Projects stuck on Go versions older than 1.25, as the package strictly requires Go 1.25+ for compatibility.
  • Applications needing ultra-fast, bulk UUID generation with minimal overhead, where lighter or more optimized libraries might outperform.
  • Systems relying on non-RFC-compliant UUID formats not covered by the custom version 8 implementation.
  • Teams seeking a UUID package with built-in serialization for specific protocols like Protocol Buffers or ORM integrations out of the box.

Pros & Cons

Pros

RFC-9562 Compliance

Adheres strictly to the latest UUID standard, ensuring interoperability and correctness in distributed systems, as highlighted in the README's reference to RFC-9562.

Comprehensive Version Support

Supports UUID versions 1 through 8, including newer k-sortable versions 6 and 7 for time-ordered IDs, enabling flexible use cases from random generation to custom implementations.

Pure Go Implementation

Has no external dependencies, making integration straightforward and deployment easy in Go projects without additional package management overhead.

Active Community Maintenance

Forked from the unmaintained satori/go.uuid to address critical flaws, providing ongoing updates, security fixes, and community-driven support for long-term reliability.

Cons

Go Version Barrier

Requires Go 1.25 or later, which can exclude legacy projects or teams not yet upgraded, limiting adoption in older codebases.

Limited Advanced Features

Focuses on core UUID generation and parsing, lacking built-in support for advanced use cases like bulk generation, custom validation rules, or seamless integration with serialization libraries beyond basic string handling.

Complex Custom Implementation

Version 8 for custom UUIDs requires manual definition and implementation, which can be more effort-intensive compared to pre-defined versions, with less guidance in the README.

Frequently Asked Questions

Quick Stats

Stars1,814
Forks124
Contributors0
Open Issues2
Last commit1 month ago
CreatedSince 2018

Tags

#rfc-9562#distributed-systems#unique-id#go-library#uuid#go#uuid-generator#identifier

Built With

G
Go

Included in

Go169.1k
Auto-fetched 17 hours ago

Related Projects

uuiduuid

Go package for UUIDs based on RFC 4122 and DCE 1.1: Authentication and Security Services.

Stars6,118
Forks432
Last commit1 year ago
ulidulid

Universally Unique Lexicographically Sortable Identifier (ULID) in Go

Stars5,043
Forks188
Last commit1 day ago
xidxid

xid is a globally unique id generator thought for the web

Stars4,280
Forks213
Last commit4 months ago
wuidwuid

An extremely fast globally unique number generator.

Stars545
Forks48
Last commit2 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub