A pure Go implementation of UUIDs (RFC-9562) supporting versions 1-8 for generation and parsing.
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.
Go developers building distributed systems, databases, or applications that require globally unique identifiers for entities like database records, session tokens, or message IDs.
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.
A UUID package for Go
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Adheres strictly to the latest UUID standard, ensuring interoperability and correctness in distributed systems, as highlighted in the README's reference to RFC-9562.
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.
Has no external dependencies, making integration straightforward and deployment easy in Go projects without additional package management overhead.
Forked from the unmaintained satori/go.uuid to address critical flaws, providing ongoing updates, security fixes, and community-driven support for long-term reliability.
Requires Go 1.25 or later, which can exclude legacy projects or teams not yet upgraded, limiting adoption in older codebases.
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.
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.