uuid

Generate and parse UUIDs in Rust across every standardized version, from v1 to v8.

Library
Cargo
v1.29.0
1,250 stars
Apache-2.0 OR MIT

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
87 /100 Excellent
Development Activity 100
Maintenance 84
Community 76
Maturity 60
Momentum 28

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
90 /100 Excellent
Architecture 88
Code Quality 90
Innovation 92
Learning Curve 90

uuid is the de facto standard Rust crate for generating and parsing Universally Unique Identifiers as defined by RFC 9562. It ships with zero dependencies by default and works in no_std environments, adding generation support for versions 1, 3, 4, 5, 6, 7, and 8 through opt-in Cargo features so consumers only pay for the algorithms they actually use.

Beyond generation, the crate provides fast parsing and formatting (hyphenated, simple, URN, and braced representations), a const uuid! macro for compile-time literals, and optional integrations with serde, zerocopy, bytemuck, borsh, and arbitrary for teams that need UUIDs to interoperate cleanly with serialization, FFI, or fuzzing pipelines.

What You Get

  • A Uuid type with parsing, formatting (hyphenated/simple/URN/braced), and comparison built on top of the standard library alone
  • Feature-gated generators for UUID versions 1, 3, 4, 5, 6, 7, and 8, so binaries only link the randomness/hashing code they request
  • A uuid! const macro for embedding known UUID literals directly into compiled code with compile-time validation
  • A lower-level Builder API for constructing UUIDs of any version without pulling in generation-specific dependencies
  • Optional trait implementations for serde, zerocopy, bytemuck, borsh, and arbitrary behind individual Cargo features
  • no_std compatibility for embedded and constrained targets, including WebAssembly support via wasm-bindgen

Common Use Cases

  • Generating unique primary keys or request/trace IDs for services and databases (v4 for randomness, v7 for time-sortable keys)
  • Deterministically deriving stable identifiers from names or namespaces using v3 (MD5) or v5 (SHA-1)
  • Parsing and validating UUID strings received from external APIs or user input, with typed error handling instead of panics
  • Embedding fixed, known UUIDs as compile-time constants (e.g. protocol or schema identifiers) via the uuid! macro
  • Serializing UUIDs through serde in JSON/binary formats, or interoperating with zerocopy/bytemuck for low-level buffer work

Under The Hood

Architecture — The crate centers on a single Uuid newtype wrapping a 128-bit value ([u8; 16]), with builder.rs providing a version-agnostic Builder that every version-specific module (v1.rs through v8.rs) delegates to for actually constructing bytes. fmt.rs implements Display/Debug and the hyphenated/simple/URN/braced string representations, while parser.rs implements the inverse (FromStr and byte-level parsing) with a dedicated error.rs for typed parse failures instead of panics. timestamp.rs is a substantial module (1300+ lines) handling the time-based UUID versions (v1, v6, v7), and non_nil.rs provides a NonNilUuid newtype for the common case where an all-zero UUID is an invalid state. Optional trait implementations (serde, zerocopy, bytemuck, borsh, arbitrary) live behind an external/ module and are only compiled when their respective Cargo features are enabled, keeping the default build free of third-party dependencies.

Tech Stack — Rust 2021 edition targeting MSRV 1.85.0, structured as a Cargo workspace with the main uuid crate plus internal sub-crates (rng for randomness sourcing, examples, and dedicated wasm32-getrandom-test/smoke-test crates for target-specific verification). The default feature set is std only — no external dependencies are pulled in unless a consumer opts into v1/v3/v4/v5/v6/v7 (generation), serde, zerocopy, bytemuck, borsh, or arbitrary. WebAssembly targets get their own conditional dependency tree using wasm-bindgen and js-sys instead of getrandom/rand directly.

Code Quality — The crate carries 94 inline #[test] functions spread across its source modules, plus a separate tests/ directory that includes trybuild-based UI tests (tests/ui/compile_pass and compile_fail) gated by Rust channel via rustversion — a notably rigorous way to assert the public API’s compile-time contract (e.g. which trait impls should or shouldn’t be available under which features). Parsing failures are represented as a typed Error enum rather than panics or unwraps, and the extensive doc comments throughout lib.rs are themselves runnable doctests that CI verifies stay accurate.

API Design — The common path is a single import (use uuid::Uuid) and a one-line call (Uuid::new_v4()), with the uuid! const macro letting known UUIDs be embedded as compile-time literals with zero runtime cost. Cargo features map cleanly onto UUID versions and integrations by name, so the dependency footprint scales precisely with what a consumer opts into, and the Builder type gives lower-level control (e.g. custom randomness sources) without requiring the higher-level generation features at all.

Used by 56 apps in this directory

Rust
46%
MIT

Svix

Automation · Developer Tools

3,463

Open source, self-hostable webhook infrastructure that handles delivery, retries, HMAC signing, and multi-tenant event management so you never have to build a webhooks system from scratch.

View details
91
Repo Health
77
Technical
67
Dependency
Built with
Rust 46%
C# 16%
Updated 6 days ago
Rust
93%
Other

Tabby

AI Code Assistants

33,924

Self-hosted AI coding assistant — run GitHub Copilot-grade code completion on your own hardware with no cloud dependency.

View details
55
Repo Health
78
Technical
61
Dependency
Built with
Rust 93%
Updated 4 months ago
TypeScript
67%
Apache 2.0

tabularis

Databases · Developer Tools

5,270

Open-source desktop SQL workspace with built-in PostgreSQL, MySQL, and SQLite drivers, SQL notebooks, a visual query builder, and a built-in MCP server for AI agents like Claude and Cursor.

View details
84
Repo Health
89
Technical
66
Dependency
Built with
TypeScript 67%
Rust 31%
Updated 5 days ago
Rust
66%
Apache 2.0

Temps

Analytics · Devops · Monitoring

865

A self-hosted Rust PaaS that replaces Vercel, Sentry, PostHog, Pingdom, Resend, and E2B with one binary — plus 440+ CLI operations agents like Claude Code can drive directly.

View details
81
Repo Health
86
Technical
66
Dependency
Built with
Rust 66%
TypeScript 33%
Updated 6 days ago
Rust
79%
Apache 2.0

TensorZero

Ab Testing Experimentation · AI Development · Monitoring

11,708

TensorZero unifies the LLM gateway, observability, evaluation, optimization, and experimentation stack behind a single OpenAI-compatible API, built in Rust for sub-millisecond p99 latency.

View details
53
Repo Health
87
Technical
68
Dependency
Built with
Rust 79%
TypeScript 15%
Updated 4 months ago
TypeScript
68%
AGPL 3.0

Tolaria

Note Taking

20,161

A free, open-source, local-first desktop app for managing markdown knowledge bases on macOS, Windows, and Linux — for second brains, company docs, or AI assistant memory and procedures.

View details
84
Repo Health
71
Technical
68
Dependency
Built with
TypeScript 68%
HTML 15%
Updated 5 days ago
Rust
71%
MIT

Trieve

AI Development · Developer Tools · Search

2,721

All-in-one self-hostable platform for hybrid search, RAG, recommendations, and analytics built on Rust and Qdrant.

View details
42
Repo Health
74
Technical
65
Dependency
Built with
Rust 71%
Updated 9 months ago
Rust
83%
AGPL 3.0

Vaultwarden

Password Manager · Security

69,556

Unofficial Bitwarden-compatible server in Rust — run the full Bitwarden ecosystem on a Raspberry Pi using every official client you already have, without the multi-container overhead.

View details
89
Repo Health
69
Technical
69
Dependency
Built with
Rust 83%
Updated 1 weeks ago
Rust
50%
Apache 2.0

Vibe Kanban

AI Agents · AI Code Assistants · Project Management

28,441

A kanban board for planning work and dispatching Claude Code, Codex, Gemini CLI, and eight other coding agents into isolated git worktrees, then reviewing and merging their diffs from one UI.

View details
72
Repo Health
75
Technical
63
Dependency
Built with
Rust 50%
TypeScript 46%
Updated 1 months ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers