Skip to content
CAI
Software that uses CAICheck a score

dnsimple/base32_erlang

59.3

Adequate · 17 September 2026

824

lines of production code

Erlang

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is a Base32 encoding and decoding library for Erlang, focused on high performance and code quality. It provides optimized bit-level operations for standard and hex alphabets, supported by a comprehensive test suite that includes property-based verification. The project also establishes a robust development environment with strict linting, formatting, and documentation tooling.

Behavioural changes

Major rewrite of base32 encoding/decoding with performance optimizations

The core base32 library has been significantly refactored to improve performance and code quality. The implementation now uses inline-compiled helper functions for encoding and decoding, replacing the previous generic function-based approach with specialized bit-level operations for hex and standard alphabets. The application metadata has been updated to include an Apache-2.0 license, a descriptive text, and a GitHub link, while the version is now dynamically set via git. These changes result in a faster, more maintainable library for users encoding and decoding base32 strings.

src · high confidence

Project tooling and build configuration overhaul

The project has adopted a comprehensive set of development tooling and stricter build configurations. This includes adding a Makefile for standard build, test, and documentation tasks, and configuring rebar3 with extensive compiler warnings (such as unused variables and shadow vars) and dialyzer/xref checks to improve code quality. New plugins have been integrated for formatting (erlfmt), documentation generation (ex\_doc), linting (rebar3\_lint), and coverage reporting (covertool). Additionally, standard repository files like .gitignore, LICENSE (Apache 2.0), and CHANGELOG.md have been added to support the release process.

(repo-wide) · high confidence

Test coverage

Added comprehensive test suite for Base32 encoding and decoding

Added a new test file (test/base32\_test.erl) that validates the base32 module's encode and decode functions. The tests cover standard cases, lower-case output, padding removal, hex encoding modes, string input/output handling, and specific error conditions like non-alphabetic characters and incorrect padding. It also includes property-based tests using the Proper library to verify that encoding followed by decoding returns the original binary data across various option combinations.

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

Lenses

  • Code Health 99
  • Architecture 69
  • Maturity 49
  • Readiness 76
  • Security 61

Changes since last survey

  • 34 commits — 34 feature/other, 0 fixes

By area

  • (root) — 16 commits
  • .github/workflows — 15 commits
  • .github/dependabot.yml — 2 commits
  • src/base32.app.src — 1 commit

Notable commits

  • change: Add CHANGELOG
  • change: Add build process with Makefile and rebar3
  • change: Add readme and license
  • change: Adds CI (#2)
  • change: Adopt erlfmt (#1)
  • change: Apply binary optimisations (#10)
  • change: Bump actions/cache from 4 to 5 (#15)
  • change: Bump actions/cache from 5 to 6 (#18)
  • change: Bump actions/checkout from 4 to 5 (#13)
  • change: Bump actions/checkout from 5 to 6 (#14)
  • change: Bump actions/checkout from 6 to 7 (#17)
  • change: Bump actions/checkout in the actions-patch-minor group (#21)
  • change: Bump coverallsapp/github-action in the actions-patch-minor group (#22)
  • change: Bump the actions-patch-minor group with 2 updates (#20)
  • change: Bumps to Erlang v27.1.3 (#5)
  • change: General care (#9)
  • change: Increment OTP CI matrix to 27-29 (#19)
  • change: Prepare release 0.1.1
  • change: Prepare release v1.0.0
  • change: Remove useless app setting
  • …and 14 more

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

Survey your own repository

dnsimple/base32_erlang 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 01e84b227d0156c42b04a2492dfadf23f845455e — 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.