lpgauth/buoy
69.4
Adequate · 2 October 2026
776
lines of production code
Erlang
primary language
2
measurements over time
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.