Skip to content
CAI
Software that uses CAICheck a score

sile/hash_ring

64.1

Adequate · 2 October 2026

868

lines of production code

Erlang

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is an Erlang library for implementing consistent hashing rings, providing both static and dynamic node management strategies. It supports configurable node weights and multiple hash algorithms, enabling efficient distribution of data across a cluster. The codebase includes comprehensive unit tests and benchmarks to validate core behaviors like node addition, removal, and ring traversal.

Features

Version 0.4.2: New dynamic ring implementation and node weight support

This release introduces a new \hash\_ring\_dynamic\ module that uses a balanced tree for O(log N) node additions and removals, offering an alternative to the existing tuple-based \hash\_ring\_static\ implementation. Users can now assign weights to nodes via the \hash\_ring\_node:make/3\ API, allowing for uneven distribution of virtual nodes. The library also adds support for \crc32\ and \phash2\ hash algorithms, exposes a \fold/4\ function for efficient ring traversal, and includes a benchmark module to compare performance between the static and dynamic backends.

src · high confidence

Behavioural changes

Migrate build system to rebar3 and update project configuration

The project has switched its build tool from the legacy rebar to rebar3, evidenced by the removal of the Makefile and the addition of a rebar.lock file. The rebar.config has been updated to require a minimum OTP version of 17, added a dialyzer profile with specific warning configurations, and included a test profile using the covertool plugin. Additionally, the COPYING file was renamed to LICENSE with an updated copyright year range, and .gitignore was adjusted to exclude the new \_build directory while preserving documentation markdown files.

(repo-wide) · high confidence

Test coverage

Added unit tests for hash ring node, utility, and core modules

Added new EUnit test suites covering the \hash\_ring\_node\ module (creation and attribute retrieval), the \hash\_ring\_util\ module (hash algorithm correctness), and the main \hash\_ring\ module. The ring tests verify core behaviors including ring creation, dynamic node addition and removal, node finding, node collection, and folding operations across both static and dynamic implementation modules.

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

Score

  • CAI 56 → 64 (+8.5)
  • Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (+0.0)
  • Architecture 69 → 69 (+0.0)
  • Maturity 38 → 54 (+16.0)
  • Readiness 64 → 68 (+3.7)
  • Security 85 → 85 (+0.0)

Resolved (2)

  • Coverage not measured — no coverage collector is wired up
  • Documentation: no architecture or design documentation (README.md)

New (1)

  • Documentation: no project overview (README.md)

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

sile/hash_ring 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 2 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 3cb18a27c59cb7898e7df38c7a6353c80114c4e5 — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.