No description
Find a file
Vincent Ambo da66599696 feat(core): Check in Finito core library
The implementation of this library is closely modeled after the core
abstraction in the Haskell library. This does not at all concern
itself with persistence, interpretation of effects and so on.
2018-09-26 16:54:00 +02:00
finito-core feat(core): Check in Finito core library 2018-09-26 16:54:00 +02:00
.gitignore chore: Add Rust-specific .gitignore file 2018-09-26 11:33:52 +02:00
Cargo.toml feat(core): Check in Finito core library 2018-09-26 16:54:00 +02:00
README.md docs: Add initial README 2018-09-26 11:34:08 +02:00

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.