c4fb0432ae
GitOrigin-RevId: 3fc1143a04da49a92c3663813c6a0c1e8ccd477f |
||
---|---|---|
.. | ||
finito-core | ||
finito-door | ||
finito-postgres | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
default.nix | ||
README.md |
Finito
This is a Rust port of the Haskell state-machine library Finito. It is slightly less featureful because it loses the ability to ensure that side-effects are contained and because of a slight reduction in expressivity, which makes it a bit more restrictive.
However, it still implements the FSM model well enough.
Components
Finito is split up into multiple independent components (note: not all of these exist yet), separating functionality related to FSM persistence from other things.
finito
: Core abstraction implemented by Finitofinito-door
: Example implementation of a simple, lockable doorfinito-postgres
: Persistent state-machines using Postgres
Note: The finito
core library does not contain any tests. Its
coverage is instead provided by the finito-door
library, which
actually implements an example FSM.
These are split out because the documentation for finito-door
is
interesting regardless and because other Finito packages also need an
example implementation.