Skip to content
CAI
Software that uses CAICheck a score

lpgauth/buoy

69.4

Adequate · 2 October 2026

776

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 high-performance HTTP client library for Erlang/OTP that manages connection pooling and request execution. It supports modern socket protocols, automatic reconnection, and a variety of HTTP methods including HEAD and PUT, while providing optional telemetry for observability. The library is designed for robustness, featuring chunked response handling, HTTPS support, and configurable connection limits.

Behavioural changes

3 commits (1 fix) modifying bin

A change to existing behaviour in bin — 3 commits (1 fix), 2 files.

bin · medium confidence · unverified

Buoy HTTP client v0.3.1: API simplification, new HTTP methods, and telemetry

This release simplifies the public API by consolidating multiple header/body/timeout arguments into a single options map for all request functions (async\_get, async\_post, etc.) and introduces dedicated async\_head/2, async\_put/2, custom/3, and head/2 functions. It adds support for chunked response bodies and HTTPS via the foil dependency (replacing the removed buoy\_compiler). Users can now enable request telemetry events (request\_sent, request\_error) via application environment, and the client state management has been refactored to use a queue for better request tracking.

src · high confidence

Documentation generation tooling switched from edown to ex\_doc

The project has replaced the edown documentation generator with ex\_doc. This change updates the build process for the API reference documentation located in the doc/ directory, which previously relied on edown (as indicated by the deleted edoc-info configuration and the removal of generated Markdown files). Users will now see documentation generated via the ex\_doc toolchain.

doc · high confidence

Updated HTTP client defaults and expanded configuration options

The HTTP client library now enables automatic reconnection by default (previously disabled) and sets specific maximum (120s) and minimum (0.5s) reconnect intervals. New configuration options have been added to allow users to limit the number of requests per connection via \max\_requests\ and to pass custom socket options. The supported HTTP methods have been expanded to include HEAD, PUT, and custom methods, and the internal URL record now explicitly tracks the protocol scheme.

include · high confidence

Upgrade to Shackle 0.8.0 and introduce socket protocol support

The library upgrades its dependency on Shackle to version 0.8.0, which enables the use of the new socket NIF protocol (shackle\_socket) for HTTP pools, offering a high-performance alternative to gen\_tcp on OTP 27.3+. This change also introduces a \telemetry\ app environment gate that allows users to disable event emission entirely for better performance when telemetry is not needed. Additionally, the \option()\ type is now correctly documented to include all accepted protocol values, and a fix ensures that \buoy\_app:stop/1\ no longer incorrectly terminates the underlying Shackle pool, preventing request failures after application restarts.

(repo-wide) · high confidence

Test coverage

Test suite refactored with custom HTTP server and expanded coverage

The test infrastructure replaced the Cowboy-based test server with a custom gen\_tcp/ssl fixture, enabling end-to-end HTTPS testing and support for custom HTTP verbs. Test coverage was expanded to include HEAD requests, chunked encoding, and a max\_requests pool option, while socket protocol tests are now gated on OTP 28. The test suite also migrated to use the new protocol field in URL records and added telemetry event verification.

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 69 → 69 (+0.6)
  • 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 59 → 59 (+0.0)
  • Readiness 78 → 80 (+2.2)
  • Security 92 → 96 (+4.0)

Resolved (2)

  • Coverage not measured — no coverage collector is wired up
  • Documentation: no installation or build instructions (README.md)

New (1)

  • Outdated: foil

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

Survey your own repository

lpgauth/buoy 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 bd95598af9bc3a60512cdcfc30446bc14ff7ced5 — 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.