nomasystems/nuid
65.1
Adequate · 17 September 2026
664
lines of production code
Erlang
primary language
1
measurement over time
What this system is
This system is the nuid library, an Erlang/OTP package designed for generating and managing unique identifiers. It provides support for standard UUID versions 1 through 8, including RFC 9562 compliant types, alongside two custom sortable identifier types (nuid1 and nuid2) that facilitate time-based ordering and node identification. The library focuses on deterministic generation, URL-safe encoding, and metadata extraction without external dependencies.
Features
Initial public release of nuid with expanded UUID standards and new identifier types
The nuid library is now available as a Hex.pm package, supporting Erlang/OTP 27+ (upgraded from OTP 24). This release introduces full support for RFC 4122 UUIDs (versions 1, 3, 4, 5) and RFC 9562 UUIDs (versions 6, 7, 8), along with nil and max UUIDs. It also adds two new sortable identifier types: \nuid1\ (hex-timestamped with 128 bits of randomness) and \nuid2\ (timestamped, node-tagged, and URL-safe). The library includes info recovery functions to extract generation time and node data from generated identifiers, and relies only on standard OTP applications (kernel, stdlib, crypto) with no external dependencies.
(repo-wide) · high confidence
Behavioural changes
Refined type definitions and record structure in nuid.hrl
The include file nuid.hrl has been updated to adjust type constraints and record fields. The \date()\ type now uses \non\_neg\_integer()\ for the year component instead of \pos\_integer()\. The \uuidInfo\ record's \node\ field type has been changed from \atom()\ to \node()\. Additionally, the ordering of type definitions has been slightly reorganized, though no types were added or removed.
include · high confidence
Updated nuid library with UUID v8 support and sortable base64 encoding
The nuid OTP library has been updated to support UUID version 8 (vendor-specific) via new \uuid8/1\ and \uuid8/3\ functions, adhering to RFC 9562. The underlying base64 encoding used for nuids has been replaced with a custom, URL-safe, lexicographically sortable variant that omits padding, ensuring that generated identifiers preserve input byte ordering. The application metadata now declares a dependency on the \crypto\ application and specifies a minimum OTP version of 27.
src · high confidence
Test coverage
Expanded test coverage for UUID generation and compatibility
The test suite now includes property-based tests verifying uniqueness and ordering across multiple UUID types (UUID1-7 and NUID1-2), adds specific tests for UUID6 and NUID1 compatibility, and validates the new UUID8 generation alongside nil and max UUID constants. Additionally, configuration files for the CI environment have been removed, and the test harness initialization has been simplified by removing custom trace setup/teardown hooks.
test · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 65.
Lenses
- Code Health 99
- Architecture 69
- Maturity 59
- Readiness 70
- Security 67
Changes since last survey
- 10 commits — 9 feature/other, 1 fixes
By area
- (root) — 7 commits
- (repo) — 1 commit
- .github/workflows — 1 commit
- src/nuid_base64.erl — 1 commit
Notable commits
- fix: fix: remove padding, $= is not url safe. (#6)
- change: Initial commit.
- change: Merge pull request #2 from nomasystems/test/uuid6_nuid1_compatibility
- change: chore: copyright updated.
- change: chore: implement uuid8 (#4)
- change: chore: package for Hex.pm release (#8)
- change: chore: update dependencies refs (#3)
- change: ci: Adds OTP 28 (#7)
- change: refactor: update base64 basecode. (#5)
- change: test: uuid6 and nuid1 compatibility
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
nomasystems/nuid was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 17 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit a53bf4eb80000ccf91a87f1b184791365f1dc132 — the exact code this score is about.
- Scored under rubric-2026.09.13 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-d1ef6c0bd534.