riker-rs/riker
64.1
Adequate · 21 September 2026
4.4k
lines of production code
Rust
primary language
4
measurements over time
What this system is
This system is a Rust-based actor framework that provides a structured environment for building concurrent applications using the actor model. It features a procedural macro for automatic message routing and a simplified, generic message-passing protocol that supports hierarchical actor trees, pub/sub channels, and various supervision strategies. The framework also includes a modernized system kernel with structured logging, scheduled task management, and dead-letter handling.
Features
Added new example programs for the Riker actor framework
The examples directory now includes ten new Rust source files that demonstrate various actor patterns and features of the Riker library. These include basic actor creation, message passing, hierarchical actor trees, and specific supervision strategies such as restart, escalate, and stop. Additional examples showcase the use of channels for pub/sub messaging, system and dead-letter event subscriptions, and actor selection by path.
examples · high confidence
Introduce the \`\#\[actor\]\` macro for automatic message enum generation
The \riker-macros\ crate now provides a new \\#\[actor\]\ procedural macro that automatically generates a message enum and associated \Receive\ trait implementations for actor types. This allows developers to define message types and have the macro handle the boilerplate for routing messages to the correct handler, supporting generic actors through proper generic preservation.
riker-macros/src · high confidence
Behavioural changes
Refactor actor reference and path types to use Arc\<str\> and new traits
The actor module has been refactored to improve memory efficiency and modernize the API. The \ActorRef\ struct has been replaced by a new \ActorReference\ trait and a \BasicActorRef\ type, shifting the public interface to use \Arc\<str\>\ for actor paths and names to reduce memory allocations. Additionally, the \Actor\ trait and related components like \ActorCell\ and \ActorRef\ have been updated to align with this new structure, including changes to how actor selection and message passing are handled through the new \ActorReference\ trait.
src/actor · high confidence
Refactor actor system modules and upgrade scheduling API
The system module refactors the internal architecture by removing the legacy io, persist, and system initialization files, replacing them with a new logging subsystem using slog and a modernized timer API. The timer now uses DateTime\<Utc\> for scheduled times instead of SystemTime, and returns a specific ScheduleId (UUID) rather than a generic identifier. Additionally, the logger implementation has been updated to use the slog crate for structured logging, and dead letter logging is now handled by a dedicated actor subscribing to the dead letter channel.
src/system · high confidence
Refactor kernel internals to use generic Envelope types
The kernel module has been refactored to replace the generic \Enqueued\<Msg\>\ wrapper with a specific \Envelope\<Msg\>\ type for message passing. This change simplifies the internal messaging protocol by removing the intermediate \Enqueued\ enum, allowing the \QueueWriter\ and \QueueReader\ to handle \Envelope\<Msg\>\ directly. Additionally, the \Provider\ struct now uses \DashMap\ for tracking actor paths, and the \KernelRef\ has been simplified to use a single \Sender\<KernelMsg\>\ channel, reducing the complexity of the actor system's core dispatching and lifecycle management.
src/kernel · medium confidence
Simplified message passing and validation rules
The framework now uses a generic \AnyMessage\ type for message passing, replacing the previous complex \ActorMsg\ and \Envelope\ structures with a simpler \Envelope\<T\>\ and \AnyMessage\ wrapper. Additionally, the \validate\path\ function has been updated to allow periods (\.\) and asterisks (\\\) in actor paths, and the \validate\_name\ regex now requires at least one character.
src · high confidence
Test coverage
Added integration tests for the actor macro with generics and nested types; Updated test suite with modern Rust patterns and expanded coverage.
Dependencies
Update Rust dependencies and add pre-commit hooks
The project updates several Rust dependencies to newer versions, including upgrading from futures-preview to futures 0.3.4, config from 0.8 to 0.10.1, rand from 0.4 to 0.7, regex from 0.2 to 1, and uuid from 0.6 to 0.8. Additionally, new dependencies such as pin-utils, slog, slog-stdlog, slog-scope, num\_cpus, and dashmap are added, while riker-macros is introduced as a local dependency. The package.json file is added to configure pre-commit hooks using Husky and lint-staged for development workflow enforcement.
(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 63 → 64 (+1.5)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 98 → 97 (-0.7)
- Architecture 100 → 100 (+0.0)
- Maturity 45 → 45 (+0.0)
- Readiness 64 → 67 (+2.3)
- Security 78 → 85 (+6.7)
- Domain Modelling 100 → 100 (+0.0)
- Event Sourcing 100 → 100 (+0.0)
Resolved (13)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- 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)
- No exposed public API
- Scanner failed to run — not a clean result
- Test reliability not included
- The 'Example' section shows only a stub for an actor trait impl (recv(..), msg: ...) with no working code and no explanation of how to run it. (README.md)
- dormant codebase — no living knowledge left to concentrate
New (44)
- Dependency hygiene PARTLY measured — Cargo dependencies read, no committed lock to grade for currency
- Documentation: no contributor guidance (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (10 lines × 2) (src/kernel/provider.rs)
- Duplicated block (10 lines × 4) (src/actor/actor_cell.rs)
- Duplicated block (11 lines × 2) (src/actor/actor_cell.rs)
- Duplicated block (12 lines × 2) (src/actor/actor_cell.rs)
- Duplicated block (13 lines × 2) (src/actor/actor_cell.rs)
- Duplicated block (13 lines × 2) (src/system.rs)
- Duplicated block (30 lines × 2) (src/actor/selection.rs)
- Duplicated block (7 lines × 2) (src/actor/actor_cell.rs)
- 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)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- …and 24 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
riker-rs/riker 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 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit ccd4e5f76f12e5d409c6dcf7e03401391e06b550 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-fa71c66cabd8.