Skip to content
CAI
Software that uses CAICheck a score

processone/p1_utils

56.0

Adequate · 2 October 2026

4k

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 a collection of Erlang utility libraries designed to provide foundational components for distributed and concurrent applications. It offers implementations for in-memory and file-backed queues, a unified HTTP client abstraction, and tools for rate limiting, configuration management, and network protocol parsing. The project also includes compatibility layers for different Erlang versions and build systems, along with comprehensive testing for its core queue functionality.

Features

Introduce file queue record definition

Added the \p1\_queue.hrl\ header file defining the \file\_q\ record, which structures the internal state of file-based queues. This record tracks queue boundaries via \head\ and \tail\ indices, enforces capacity limits (or allows unlimited growth), stores the file descriptor and path, and records the owning process ID along with start/stop timestamps.

include · high confidence

Introduction of p1\_utils library with core utility modules

The src directory now includes the p1\_utils library, adding several new Erlang modules: p1\_queue and p1\_file\_queue for in-memory and file-backed queue implementations, p1\_http for a unified HTTP client API supporting ibrowse, lhttpc, and inets, p1\_options for dynamic configuration management, p1\_proxy\_protocol for parsing PROXY protocol headers, p1\_time\_compat for time API compatibility across Erlang versions, p1\_rand for random number generation, p1\_shaper for rate limiting, p1\_nif\_utils for NIF path resolution, and treap for priority-based tree structures. Additionally, p1\_fsm and p1\_prof have been updated with copyright year changes and minor code style fixes.

src · high confidence

Behavioural changes

Switch to Apache 2.0 license and modernize build tooling

The project license has been changed to Apache 2.0 to improve usability. The build system now supports both Rebar 2 and Rebar 3, with the Makefile and rebar.config updated to detect the installed version and adjust compilation, testing, and dialyzer commands accordingly. Additionally, the repository now includes a Code of Conduct, contributing guidelines, and a rebar.config.script to handle CI integration and dependency filtering for both build tools.

(repo-wide) · high confidence

Test coverage

Added comprehensive EUnit tests for the p1\_queue module

Added a new test suite (p1\_queue\_test.erl) that verifies the behavior of the p1\_queue module, covering both RAM and file-based queue implementations. The tests validate core operations including creation, insertion, removal, length calculation, and emptiness checks, as well as specific features like queue limits (get\_limit/set\_limit) and error handling for full queues.

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 57 → 56 (-0.5)
  • Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 90 → 90 (+0.0)
  • Architecture 100 → 100 (+0.0)
  • Maturity 52 → 50 (-2.0)
  • Readiness 68 → 68 (+0.0)
  • Security 46 → 46 (+0.0)

Resolved (3)

  • Coverage not measured — no coverage collector is wired up
  • Hotspot: src/p1_server.erl (src/p1_server.erl)
  • Off-boarding risk: anonymized user #1

New (2)

  • Documentation: no installation or build instructions (README.md)
  • 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

processone/p1_utils 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 da6da6b95406268c027be1a04136a829dcfa3895 — 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.