nomasystems/nmaglev
62.2
Adequate · 17 September 2026
109
lines of production code
Erlang
primary language
1
measurement over time
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.