feat(tazjin/finito): Check in my old Rust state-machine library
I dug through my archives for this and found a version that, while unfortunately not the latest implementation, is close enough to the real thing to show off what Finito did. This is a Postgres-backed state-machine library for complex application logic. I wrote this originally for a work purpose in a previous life, but have always wanted to apply it elsewhere, too. git-subtree-dir: users/tazjin/finito git-subtree-mainline:0380841eb1
git-subtree-split:b748117225
Change-Id: I0de02d6258568447a14870f1a533812a67127763
This commit is contained in:
commit
9e7b81391d
13 changed files with 1279 additions and 0 deletions
27
users/tazjin/finito/README.md
Normal file
27
users/tazjin/finito/README.md
Normal file
|
@ -0,0 +1,27 @@
|
|||
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 Finito
|
||||
* `finito-door`: Example implementation of a simple, lockable door
|
||||
* `finito-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.
|
Loading…
Add table
Add a link
Reference in a new issue