Skip to content
CAI
Software that uses CAICheck a score

nomasystems/nmaglev

62.2

Adequate · 17 September 2026

109

lines of production code

Erlang

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is an Erlang library implementing a consistent hashing algorithm, specifically utilizing SHA-1 for robust node distribution. It provides core functionality for creating nodes and mapping keys to outputs, with explicit error handling for empty tables. The project is structured with a rebar3 build system and includes a test suite that verifies distribution consistency and usage patterns.

Behavioural changes

Improved hashing algorithm and API type safety

The consistent hashing implementation now uses SHA-1 via \crypto:hash\ instead of the deprecated \erlang:phash\ for generating permutation offsets, providing a more robust distribution. The \get/2\ function has been updated to explicitly return an \{error, empty\_maglev\_table}\ tuple when the lookup table is empty, rather than potentially failing silently or raising an error. Additionally, the module exports have been refined with proper specs and type definitions, and internal variable names have been standardized from 'Nodes' to 'Outputs' for clarity.

src · high confidence

Project structure cleanup and enhanced static analysis

The project has removed its legacy Makefile and app.mk build scripts, replacing them with a reconfigured rebar3 setup that includes Gradualizer for type checking and xref for cross-reference analysis. The CI badge and documentation in the README have been updated to reflect the current state, and the repository now includes an Apache 2.0 license file. Additionally, the .gitignore has been updated to exclude Erlang dump and crashdump files.

(repo-wide) · high confidence

Test coverage

Updated test suite with new usage tests and refactored utilities

The test suite now includes a new 'usage' test case that verifies the library's core functionality, such as node creation and key mapping. The test infrastructure has been refactored to use the 'nct\_util' module for setup, teardown, and tracing, replacing the previous 'setup\_teardown\_util' and 'tracing\_util' modules. Additionally, the test configuration has been updated to use a new 'test.cfg' file, and the suite now logs execution times for distribution and consistency tests.

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 62.

Lenses

  • Code Health 100
  • Architecture 69
  • Maturity 51
  • Readiness 61
  • Security 100

Changes since last survey

  • 18 commits — 16 feature/other, 2 fixes

By area

  • (root) — 12 commits
  • .github/workflows — 3 commits
  • (repo) — 1 commit
  • src/nmaglev.erl — 1 commit
  • test/conf — 1 commit

Notable commits

  • fix: fix: CI matrix (#21)
  • fix: fix: Move specs to main module (#17)
  • change: First commit
  • change: Merge pull request #4 from nomasystems/feature/3-add-xref-checking
  • change: Update README.md
  • change: build: Run ci on public runners (#16)
  • change: chore: Remove erlfmt provider hook (#18)
  • change: chore: erlang:25 (#19)
  • change: chore: specified erlang module to improve readability (#14)
  • change: chore: update CI (#20)
  • change: feat(#3): Add xref checking
  • change: feat: Add license and remove makefile (#8)
  • change: feat: Don't use erlang:phash function as it is deprecated. (#6)
  • change: feat: Improve README and tests (#15)
  • change: feat: Improve ci (#2)
  • change: feat: Use nct_util (#11)
  • change: feat: update CI to use erlang 28 (#22)
  • change: style: refs and config (#12)

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/nmaglev 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 917c134747cc169a1dcc99e6c0edcd16d58894ae — the exact code this score is about.
  • Scored under rubric-2026.09.12 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-f94092f054c1.