7 releases (4 breaking)

0.12.0 Aug 10, 2025
0.11.0 Apr 11, 2025
0.10.1 Feb 19, 2025
0.9.0 Jan 4, 2025
0.8.0 Nov 27, 2024

#2136 in Asynchronous

Download history 1/week @ 2025-10-27

389 downloads per month
Used in edfsm-kv-store

Apache-2.0

45KB
747 lines

Event driven FSM Machine

edfsm-machine effectively implements the Actor Model for Rust, where its messages are the inputs, events and outputs.

edfsm-machine provides a convenient way to drive an edfsm-based finite state machine with inputs (commands and events), and a means to capture its resulting events and "outputs". Outputs are the consequence of invoking edfsm's side-effect handling, and usually means capturing an output buffer of effects.

Upon initialising the machine and wiring up inputs, event logs and outputs, a future is produced that can be spawned by executors such as those provided by tokio.

Taking this further, a machine's inputs can be conveniently sourced from a streambed-logged log of events that have been persisted, and logged back there. These adaptations provides an event-sourcing-based Actor Model.

This library assumes no_std and requires features such as tokio to make it useful.

Dependencies

~2.8–5.5MB
~87K SLoC