dnsimple/base32_erlang
59.3
Adequate · 17 September 2026
824
lines of production code
Erlang
primary language
1
measurement over time
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.