rabbitmq/horus
55.0
Adequate · 2 October 2026
3.7k
lines of production code
Erlang
primary language
2
measurements over time
What this system is
Horus is an Erlang library that extracts anonymous functions and their dependencies into standalone, serializable modules at runtime. It enables these functions to be stored, transferred between nodes, and executed independently of their original defining context. The system includes core extraction logic, support for cover-compiled modules, and a test suite validating various Erlang language constructs.
Features
Horus library introduced as a standalone anonymous function extraction tool
The Horus library has been added to the source tree, providing a new capability to extract Erlang anonymous functions into standalone, storable modules. This allows functions to be serialized and executed later, independent of their original defining module. The implementation includes the main \horus\ module for extraction and compilation, \horus\_cover\ for handling cover-compiled modules, and supporting headers and utilities. The library is versioned at 0.5.1 and depends on standard Erlang applications including \compiler\ and \tools\.
src · high confidence
Initial release of Horus library
Horus is a new Erlang library that extracts anonymous functions and their dependencies into standalone modules at runtime, allowing them to be stored, transferred between nodes, and executed independently. This initial release includes the core extraction logic, dual licensing (Apache 2.0 and MPL 2.0), project configuration for Rebar3, and documentation.
(repo-wide) · high confidence
Introduce Horus header with standalone function detection macros
Added include/horus.hrl, which defines macros for detecting Horus standalone functions. The header exposes ?IS\_HORUS\_FUN to check if a term is a function or a standalone Horus function, and ?IS\_HORUS\_STANDALONE\_FUN to specifically identify the latter by checking for an 8-element tuple starting with the atom 'horus\_fun'. It also provides ?HORUS\_STANDALONE\_FUN\_ARITY to extract the arity from such tuples, along with error and exception helper macros.
include · high confidence
Behavioural changes
Added cover-compiled module entry point helper
A new helper module, horus\_cover\_helper, has been added to the priv directory to support special processing for cover-compiled modules. This module exports an entry\_point function that currently returns ok, serving as a hook for cover instrumentation workflows.
priv · high confidence
Horus documentation site branding and layout updates
The documentation site now features a custom Horus favicon, a dedicated logo, and a social media preview image to improve visual identity. A GitHub fork ribbon is displayed on the documentation pages, and the stylesheet has been updated to center the logo at the top of the overview page and style the navigation bar.
doc · high confidence
Test coverage
Initial test suite for Horus standalone function extraction
Added a comprehensive set of EUnit and Common Test cases to verify the extraction and execution of standalone functions. The tests cover Erlang language constructs including literals, operators, lists, maps, records, tuples, binaries, and control flow (case, if, try/catch, receive, and the \maybe\ expression). Additional test modules validate compilation from ASM and Core Erlang, caching behavior of standalone funs, and support for cover-compiled modules on both local and remote nodes.
test · high confidence
Dependencies
Added Mix project configuration for Horus
A new \mix.exs\ file has been added to the project, enabling the Horus application to be built and managed using the Elixir Mix build tool. This configuration automatically derives the application name, description, and version from the existing \src/horus.app.src\ file and imports dependency definitions from \rebar.config\, allowing the project to leverage the Elixir ecosystem for dependency management and compilation.
(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
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 53 → 55 (+2.4)
- Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 93 → 93 (+0.0)
- Architecture 100 → 100 (+0.0)
- Maturity 37 → 39 (+1.3)
- Readiness 59 → 59 (+0.0)
- Security 57 → 68 (+10.8)
Resolved (8)
- Coverage not measured — no coverage collector is wired up
- Documentation: no contributor guidance (README.md)
- Documentation: no installation or build instructions (README.md)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Hotspot: src/horus.erl (src/horus.erl)
- Off-boarding risk: anonymized user #1
New (7)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Off-boarding risk: anonymized user #1
Changes since last survey
- 8 commits — 8 feature/other, 0 fixes
By area
- .github/workflows — 3 commits
- (repo) — 2 commits
- (root) — 1 commit
- src/horus.erl — 1 commit
- test/failing_funs.erl — 1 commit
Notable commits
- change: Bump Horus to version 0.5.1
- change: GitHub Actions: Test extract-time compatibility
- change: GitHub Actions: Update Rebar from 3.27.0 to 3.27.1
- change: GitHub Actions: Update several actions to their latest versions
- change: Merge pull request #47 from rabbitmq/update-github-actions-versions
- change: Merge pull request #48 from rabbitmq/extend-compat-test
- change: helpers: Allow to extract fun on yet another remote node
- change: horus: Use a very simple module to extract module_info/{0,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
rabbitmq/horus 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 09c6fdd245be965062e83aed61937caceec8604e — 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.