Skip to content
CAI
Software that uses CAICheck a score

nomasystems/nuid

65.1

Adequate · 17 September 2026

664

lines of production code

Erlang

primary language

1

measurement over time

CAI band scale
CAI lens gauges

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.