processone/eimp
60.8
Adequate · 2 October 2026
589
lines of production code
Erlang
with C
2
measurements over time
What this system is
This system is an Erlang-based image processing library that handles identification, conversion, and scaling of images in formats including PNG, JPEG, WebP, and GIF. It features dynamic loading of external C libraries for format support and includes a configurable rate-limiting mechanism to control request throughput. The build infrastructure has been modernized to rebar3 with optional C library dependencies, ensuring robust compilation and testing across different environments.
Features
Rate limiting and GIF support added to image conversion
The library now supports GIF format conversion and identification, expanding the range of supported image types beyond PNG, JPEG, and WebP. A new rate-limiting mechanism has been introduced via the eimp\_limit module, allowing users to configure request limits using limit\_by and rate\_limit options in convert and identify calls; exceeding these limits returns a too\_many\_requests error. The supervisor now starts the rate limiter alongside worker processes, and the application dependency list includes p1\_utils to support time compatibility functions used in the new limit logic.
src · high confidence
Behavioural changes
Build system migrates to rebar3 and enables optional C library support
The project has updated its build infrastructure to support rebar3, including a new Makefile that detects the rebar version and adjusts test and dialyzer commands accordingly. The configure script and build scripts have been refactored to make external C libraries (libgd, libjpeg, libpng, libwebp) optional; instead of failing the build if these headers or libraries are missing, the system now emits warnings and compiles with conditional macros (HAVE\_GD, HAVE\_JPEG, etc.) to disable support for unavailable formats at runtime. Additionally, the dependency on p1\_utils has been updated to version 1.0.29, and CI coverage reporting has been switched from Travis to GitHub Actions with Coveralls integration.
(repo-wide) · high confidence
Dynamic library loading and GIF support
The image processing engine now loads external libraries (JPEG, PNG, WebP) dynamically at runtime instead of linking them statically, improving compatibility with systems where these libraries are not built with specific features like WebP. Additionally, GIF format support has been added, allowing the system to identify and process GIF images alongside existing PNG, JPEG, and WebP formats.
_c\src · high confidence
Test coverage
Added tests for GIF support, image identification, scaling, and rate limiting
The test suite for the \eimp\ module has been expanded to cover new capabilities and edge cases. Tests now verify support for the GIF format (including conversion to and from PNG, JPEG, and WebP, as well as malformed GIF handling) and the new \identify/1\ function for retrieving image metadata. Additionally, the suite includes tests for the \scale\ transformation, a rate-limiting feature (verifying \too\_many\_requests\ errors), and an encode failure scenario for unsupported GIF-to-WebP conversions. Error handling tests have also been updated to include \image\_too\_big\ and \transform\_failure\ cases.
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 61 → 61 (+0.0)
- 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 51 → 51 (+0.0)
- Readiness 68 → 68 (+0.0)
- Security 61 → 61 (+0.0)
- Event Sourcing 100 → 100 (+0.0)
Resolved (4)
- Coverage not measured — no coverage collector is wired up
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Off-boarding risk: anonymized user #1
New (3)
- Dependency hygiene PARTLY measured — rebar3 pinning read, dependency currency not (no rebar.lock-pinned Hex declaration to grade)
- No dependency lockfile committed (rebar.config)
- 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/eimp 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 b5eabce78131a4fdf08dde532e2bd4f027e92841 — 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.