Skip to content
CAI
Software that uses CAICheck a score

processone/fast_yaml

61.5

Adequate · 2 October 2026

542

lines of production code

Erlang

with C

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

fast\_yaml is a high-performance Erlang library for parsing and encoding YAML data. It utilizes a native interface (NIF) to convert YAML into Erlang maps with strict type safety, avoiding the creation of atoms for scalar values. The system supports both decoding and encoding operations, including handling of complex data structures and anchors.

Behavioural changes

Library renamed from p1\_yaml to fast\_yaml with expanded API

The YAML parsing library has been renamed from p1\_yaml to fast\_yaml to emphasize performance. This change introduces a new public API that includes an encode function for converting Erlang terms to YAML, support for encoding Erlang maps, and a sane\_scalars option to interpret omitted values as undefined. The application now depends on p1\_utils for NIF file location and loads the native library via the -on\_load() declaration.

src · high confidence

Project renamed to fast\_yaml with Apache 2.0 license and build system overhaul

The project has been renamed from p1\_yaml to fast\_yaml to emphasize performance, and the license has been changed to Apache 2.0 to allow wider usage. The build system has been normalized to support both rebar and rebar3, including the addition of a rebar.config.script for dynamic configuration, explicit dependency on p1\_utils, and integration with GitHub Actions for CI. Additionally, a Code of Conduct and contributing guidelines have been added to the repository.

(repo-wide) · high confidence

YAML parser replaced with fast\_yaml NIF supporting Erlang maps and sane scalars

The legacy p1\_yaml parser has been removed and replaced by a new NIF-based parser named fast\_yaml. This change alters how YAML is converted to Erlang terms: mappings are now returned as Erlang maps instead of key-value lists, and the new 'sane\_scalars' mode ensures that plain scalars in map values are interpreted as numbers, booleans, or undefined (for null/empty) rather than being converted to atoms, which prevents crashes on long strings and improves type safety.

_c\src · high confidence

Test coverage

Added YAML test fixtures and NIF unload test

Added a suite of YAML test fixtures (test1.yml through test8.yml) covering various data types, anchors, binary data, and complex form schemas, along with a new Erlang test module (unload\_test.erl) to verify NIF unloading and garbage collection behavior.

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 51 → 61 (+10.4)
  • 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 35 → 50 (+14.7)
  • Readiness 68 → 68 (+0.0)
  • Security 57 → 74 (+17.2)

Resolved (3)

  • Coverage not measured — no coverage collector is wired up
  • Documentation: no installation or build instructions (README.md)
  • Off-boarding risk: anonymized user #1

New (2)

  • Dependency hygiene PARTLY measured — rebar3 pinning read, dependency currency not (no rebar.lock-pinned Hex declaration to grade)
  • Orphaned files with no living knowledge

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

Survey your own repository

processone/fast_yaml 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 f322e4b5f371cd4b11a9607bf4ed3eae21b8f5b4 — 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.