klarna/erlavro
62.4
Adequate · 2 October 2026
6k
lines of production code
Erlang
primary language
2
measurements over time
What this system is
This system is an Erlang library for handling Apache Avro data serialization and schema management. It provides core capabilities for encoding and decoding data in both binary and JSON formats, alongside parsing Avro IDL files and managing schema definitions. The project includes tooling for code coverage analysis and comprehensive test fixtures to ensure interoperability and correctness.
Features
Initial project scaffolding and configuration
This change introduces the foundational build and configuration files for the Erlang Avro library. It adds a Makefile to standardize build tasks (compile, test, dialyzer) using rebar3, configures the project with rebar.config (including the snappyer dependency and jsone for testing), and sets up code style enforcement via elvis.config. Additionally, it establishes the CI pipeline with .travis.yml, defines the Apache 2.0 license in LICENSE, and configures version control with .gitignore.
(repo-wide) · high confidence
Initial release of erlavro Avro library
The library is now available in the src directory, providing core Avro schema handling, binary and JSON encoding/decoding, and support for complex types including records, arrays, maps, enums, fixed, and unions. It includes an Avro IDL parser for converting .avdl files to schemas, a schema store for managing type definitions, and utilities for CRC64 fingerprinting and schema compatibility checks.
src · high confidence
Introduce internal Avro type records and macros for schema handling
The library now exposes a new \include/avro\_internal.hrl\ header alongside \erlavro.hrl\ to centralize Avro schema definitions. This change introduces specific record types for all Avro data structures (primitives, records, arrays, maps, enums, unions, and fixed types) and provides macros to validate these types. It also defines the \avro\_value\ record used to wrap encoded data (distinguishing between JSON and binary serialization) and introduces a \decoder\_hook\_fun\ type, allowing users to implement custom decoding logic for specific types.
include · high confidence
New script to identify uncovered code lines
Added a new \cover-print-not-covered-lines.escript\ tool that analyzes Erlang cover data files to report specific line numbers that were not executed during testing. This script helps developers identify gaps in test coverage by importing cover data, filtering out suite modules, and printing the source lines for any uncovered code.
scripts · high confidence
Test coverage
Added Avro test data fixtures and generation scripts; Expanded test coverage for Avro schema types and encoders.
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 62 → 62 (+0.0)
- Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 94 → 94 (+0.0)
- Architecture 100 → 100 (+0.0)
- Maturity 50 → 50 (+0.0)
- Readiness 78 → 78 (+0.0)
- Security 61 → 61 (+0.0)
Resolved (5)
- Coverage not measured — no coverage collector is wired up
- Documentation: no architecture or design documentation (README.md)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Off-boarding risk: anonymized user #1
New (3)
- Dependency hygiene PARTLY measured — rebar3 pinning read, dependency currency not (no rebar.lock-pinned Hex declaration to grade)
- No dependency lockfile committed (rebar.config)
- Off-boarding risk: anonymized user #1
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
klarna/erlavro 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 09a4d05b1b205cee0e5b8733722a30494eac7d14 — 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.