ctbarbour/swim
63.9
Adequate · 2 October 2026
2k
lines of production code
Erlang
primary language
2
measurements over time
What this system is
This system is an Erlang library implementing the SWIM (Scalable Weakly-consistent Infection-style Gossip Protocol) for distributed system membership management. It provides core capabilities for failure detection, cluster membership synchronization via TCP, and gossip-based event dissemination. The implementation includes encrypted message handling and a public API for starting nodes, joining clusters, and subscribing to membership events, supported by property-based tests to verify protocol correctness.
Features
Initial project setup with Nix development environment and rebar3 build configuration
This change introduces the foundational build and development infrastructure for the SWIM Erlang project. It adds a Nix flake (flake.nix, flake.lock) and .envrc to provide a reproducible development shell using Erlang/OTP 29 and rebar3, replacing the previous Makefile with a justfile for common tasks like compilation, dialyzer checks, and testing. The rebar.config is configured with strict compiler warnings, dialyzer analysis, and test dependencies, while .gitignore and .travis.yml establish initial CI and version control hygiene.
(repo-wide) · high confidence
Initial release of SWIM protocol documentation
This update adds the complete documentation set for the SWIM (Scalable Weakly-consistent Infection-style Gossip Protocol) Erlang implementation. The new files include a README with usage examples, build instructions, and a production warning, alongside generated EDoc pages for the core modules: swim, swim\_broadcasts, swim\_membership, swim\_messages, swim\_subscriptions, and swim\_transport. This provides users with the necessary reference material to understand the protocol's failure detection, membership management, and event dissemination capabilities.
doc · high confidence
Initial release of the SWIM membership protocol library
This change introduces the core implementation of the Scalable Weakly Consistent Infection-style Process Group Membership (SWIM) protocol. It adds the application structure and a comprehensive set of modules including \swim\ (the main API with named and default instances), \swim\_membership\ (failure detection and suspicion logic), \swim\_pushpull\ (TCP-based state synchronization), \swim\_broadcasts\ (gossip dissemination), and \swim\_keyring\ (AES-256-GCM encryption for messages). Users can now start SWIM nodes, join clusters, and subscribe to membership or user events via the new public API.
src · high confidence
Test coverage
Added property-based tests and test harness for SWIM protocol; Added property-based tests for Swim protocol components.
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 64 → 64 (+0.0)
- Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 98 → 98 (+0.0)
- Architecture 100 → 100 (+0.0)
- Maturity 59 → 59 (+0.0)
- Readiness 57 → 57 (+0.0)
- Security 67 → 67 (+0.0)
Resolved (1)
- Coverage not measured — no coverage collector is wired up
New (1)
- Dependency hygiene PARTLY measured — rebar3 pinning read, dependency currency not (no rebar.lock-pinned Hex declaration to grade)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
ctbarbour/swim 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 1b8d1faacc171cbc9eb26b0d9033e904f96b1f7f — 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.