Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Elixir
  3. uuid

uuid

Apache-2.0Elixir

UUID generator and utilities for Elixir, supporting RFC 4122 versions 1, 3, 4, and 5 with multiple formatting options.

GitHubGitHub
368 stars83 forks0 contributors

What is uuid?

Elixir UUID is a library for generating and working with Universally Unique Identifiers (UUIDs) in Elixir applications. It implements RFC 4122 standards, providing functions to create UUIDs versions 1, 3, 4, and 5, along with utility functions for parsing, validating, and converting between UUID formats. It solves the need for reliable, standards-compliant unique identifier generation in Elixir projects.

Target Audience

Elixir developers who need to generate unique identifiers for distributed systems, database records, or any application requiring RFC-compliant UUIDs. Particularly useful for projects using Ecto, Phoenix, or any Elixir-based backend system.

Value Proposition

Developers choose Elixir UUID because it provides a complete, RFC 4122-compliant implementation with support for all major UUID versions, multiple output formats, and helpful utility functions in an idiomatic Elixir package. It's a reliable alternative to rolling custom UUID solutions.

Overview

UUID generator and utilities for Elixir

Use Cases

Best For

  • Generating unique identifiers for database records in Elixir applications
  • Creating RFC 4122-compliant UUIDs for distributed systems
  • Generating deterministic UUIDs from names using v3 or v5 algorithms
  • Parsing and validating UUID strings from external sources
  • Converting UUIDs between string, binary, and different text formats
  • Adding unique identifiers to Phoenix channels, PubSub messages, or Ecto schemas

Not Ideal For

  • Projects requiring UUID v6 or v7 for modern time-ordered identifiers
  • Teams needing built-in, zero-config UUID types for Ecto schemas without extra dependencies
  • High-throughput systems where native NIF-based UUID generation is critical for performance
  • Applications that only need simple random strings and want to avoid library overhead

Pros & Cons

Pros

RFC 4122 Compliance

Implements all major UUID versions (v1, v3, v4, v5) strictly following the standard, ensuring interoperability and reliability for distributed systems.

Flexible Formatting Options

Supports :default, :hex, and :urn output formats via optional parameters, catering to different use cases like database storage or URN prefixes.

Utility and Metadata Extraction

Provides info/1 and info!/1 functions to extract version, variant, and other metadata from UUID strings, aiding in validation and debugging.

Namespace Support for Deterministic UUIDs

Allows generation of v3 and v5 UUIDs using standard namespaces (:dns, :url, etc.) or custom UUIDs, enabling reproducible identifiers for names.

Cons

No Newer UUID Versions

Lacks support for UUID v6 and v7, which are newer time-ordered versions not covered by RFC 4122, limiting modern use cases.

Package Name Confusion

Renamed from 'uuid' to 'elixir_uuid' due to conflicts, which can cause issues in migration or dependency management for existing projects.

Pure Elixir Performance Trade-off

Implemented entirely in Elixir without NIFs, it may have higher overhead compared to native solutions in high-throughput scenarios.

Frequently Asked Questions

Quick Stats

Stars368
Forks83
Contributors0
Open Issues10
Last commit1 year ago
CreatedSince 2014

Tags

#elixir#id-generation#unique-identifiers#uuid#utility-library#elixir-library#rfc-4122#hex-package

Built With

E
Elixir

Included in

Elixir13.1k
Auto-fetched 1 day ago

Related Projects

moneymoney

Elixir library for working with Money safer, easier, and fun... Is an interpretation of the Fowler's Money pattern in fun.prog.

Stars848
Forks144
Last commit23 days ago
decimaldecimal

Arbitrary precision decimal arithmetic

Stars478
Forks109
Last commit2 days ago
inflexinflex

An Inflector library for Elixir

Stars384
Forks81
Last commit2 years ago
hashidshashids

Stringify your ids

Stars282
Forks16
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