1 unstable release

new 0.8.0 Nov 27, 2024

#1910 in Algorithms


Used in edfsm-kv-store

Apache-2.0

44KB
738 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.

Dependencies

~4–11MB
~114K SLoC