Skip to content
CAI
Software that uses CAICheck a score

lindenbaum/eipmi

68.7

Adequate · 2 October 2026

9.9k

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 an Erlang/OTP library that implements the RMCP/IPMI protocol, specifically focusing on remote console functionality and LAN interface support for IPMI v1.5 and v2.0. It provides a native API for managing IPMI sessions, handling authentication, and interacting with hardware components by reading FRU data and System Event Logs. The library also supports Platform Event Traps and includes comprehensive test coverage for its encoding, decoding, and security mechanisms.

Features

Add IPMI protocol constants and definitions

Introduces the eipmi.hrl header file containing protocol constants and macros for the IPMI over RMCP implementation. This includes definitions for RMCP and ASF message types, IPMI network functions (such as chassis, sensor/event, application, storage, transport, and PICMG), default addresses, and FRU/PICMG identifiers, providing the foundational data structures for the library's encoding and decoding logic.

include · high confidence

Initial project release with Erlang/OTP IPMI support

This release introduces the EIPMI application, a native Erlang/OTP library for RMCP/IPMI that implements the remote console part of the IPMI LAN interface (supporting IPMI v1.5 and v2.0/RMCP+). The library provides an API similar to \inet\/\gen\_udp\ for managing sessions, handling authentication, and issuing requests such as reading FRU data or System Event Logs (SEL). It includes built-in support for Platform Event Traps (PET) and automatic SEL polling, with asynchronous messages delivered to the session owner. The project is licensed under MIT and uses \rebar3\ for build management, depending on the \md2\ library.

(repo-wide) · high confidence

Removals

Removal of legacy EIPMI application and upgrade definition files

The EIPMI application definition file (eipmi.app) and its corresponding upgrade definition file (eipmi.appup) have been removed from the ebin directory. This eliminates the legacy Erlang application metadata and version upgrade path definitions previously used to manage the EIPMI application lifecycle within the system.

ebin · high confidence

Behavioural changes

eipmi library version 4.2.0 release

The eipmi application has been updated to version 4.2.0. This release includes the addition of an MIT license, improves session setup to be synchronous, and enhances the robustness of System Event Log (SEL) polling. It also adds support for decoding OEM and threshold sensor system events, implements high-level API functions for easier interaction, and standardizes the \always\_on\ configuration option to match \always\_off\.

src · high confidence

Test coverage

Added unit tests for IPMI authentication, encoding, and decoding

Added comprehensive eunit test suites for the eipmi library's core components. The new tests cover authentication logic (including MD2, MD5, password, HMAC-MD5, HMAC-SHA1, HMAC-SHA256, and AES-CBC encryption), packet encoding and decoding for RMCP and IPMI messages, request and response serialization for various IPMI commands (such as GET\_DEVICE\_SDR, GET\_SENSOR\_READING, and session management), utility functions, and trap event decoding.

test · high confidence

Dependencies

Removed Maven build configuration

The Maven project descriptor (pom.xml) has been deleted, removing the project's build definition, including the groupId, artifactId, version, and the maven-erlang-plugin dependency.

(dependencies) · 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 67 → 69 (+1.7)
  • Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 94 → 94 (+0.0)
  • Architecture 95 → 98 (+3.0)
  • Maturity 53 → 53 (+0.0)
  • Readiness 64 → 68 (+3.7)
  • Security 90 → 95 (+5.1)
  • Event Sourcing 100 → 100 (+0.0)

Resolved (2)

  • Coverage not measured — no coverage collector is wired up
  • Documentation: no architecture or design documentation (README.md)

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

Survey your own repository

lindenbaum/eipmi 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 fadb8e37c404b6d00835421e22f7be2bf955f42f — 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.