Open-source projects categorized as finite-state-machine | Edit details

Top 11 finite-state-machine Open-Source Projects

  • GitHub repo stateless4j

    Lightweight Java State Machine

  • GitHub repo aho-corasick

    A fast implementation of Aho-Corasick in Rust.

    Project mention: Ripgrep 13.0.0 Released | news.ycombinator.com | 2021-06-13

    Ripgrep includes one of the most prominent algorithms from Hyperscan internally for some expressions.

    Longer story: Ripgrep uses Rust's regex library, which uses the Aho-Corasick library. That does not just provide the algorithm it is named after, but also "packed" ones using SIMD, including a Rust rewrite of the [Teddy algorithm][1] from the Hyperscan project.

    [1]: https://github.com/BurntSushi/aho-corasick/tree/4499d7fdb41c...

  • GitHub repo jssm

    Fast, easy Javascript finite state machines with visualizations; enjoy a one liner FSM instead of pages. MIT; Typescripted; 100% test coverage. Implements the FSL language.

    Project mention: Good Examples of Testing in an Open Source Repo? | reddit.com/r/node | 2021-06-03

    This is my general approach

  • GitHub repo automata

    A Python library for simulating finite automata, pushdown automata, and Turing machines (by caleb531)

    Project mention: Python library for simulating finite automata | reddit.com/r/compsci | 2021-05-18

    I recommend looking at https://github.com/caleb531/automata which is another automata library in Python (also for pushdown automata, Turing machines) I've found useful in the past. One thing that wasn't so great about it was the assumption that states and symbols are Python strings. Using tuples mostly works, but sometimes it still breaks.

  • GitHub repo hsm

    Finite state machine library based on the boost hana meta programming library. It follows the principles of the boost msm and boost sml libraries, but tries to reduce own complex meta programming code to a minimum. (by erikzenker)

    Project mention: CLion IDE | reddit.com/r/cpp | 2021-02-28

    hsm - about the same as above: header only library with a Boost dependency. Still extremely simple to read and (re)use project CML.

  • GitHub repo finity

    A finite state machine library for Node.js and the browser with a friendly configuration DSL.

  • GitHub repo Synthesis

    Synthesis is a compiletime, procedure-based, low-overhead, no-allocation, state-machine generator optimized for communicating processes and threads

    Project mention: Nim Apocrypha, Vol. I | news.ycombinator.com | 2020-12-22

    State machines can be metaprogramed: https://github.com/mratsim/Synthesis

    You describe the events, transitions and even interrupts and this compiles to optimized goto statements with no allocation, indirect function calls.

  • GitHub repo visual-automata

    Visual Automata is a Python 3 library built as a wrapper for the Automata library to add more visualization features.

    Project mention: Visual Automata: A wrapper for Automata to add more visualization features | news.ycombinator.com | 2021-03-24
  • GitHub repo DiscreteStatePattern

    A pattern for creating highly compact and light-weight general purpose finite state machines. (by DidacticSpectre)

    Project mention: Multiplayer card game : how to wait ? | reddit.com/r/Unity3D | 2021-05-19

    However, you are going to want to implement a state machine, which I have the perfect solution for you.

  • GitHub repo Vortex-AUV

    Vortex AUV software. Purpose built for competing in AUV/ROV competitions.

    Project mention: Open-source Autonomy Software in Rust-lang with gRPC for the Roomba series robot vacuum cleaners | reddit.com/r/rust | 2021-02-08

    u/Khay_ That would be awesome, you are very much welcome to contribute :) I have a lot of thoughts and ideas for the project, but haven't mapped it out yet. What if I tried to set up a backlog for the project as chronological steps and some overall goals, and you can have a look? I have done something similar in the past, but only for an autonomous underwater vehicle written in C++ and Python using ROS (have a look here), and learned a lot from that. I would like to create something similar, but I know a lot of things that can improve from the past architecture.

  • GitHub repo strict-machine

    A declarative DSL for building asynchronously evaluated Finite State Machines on the JVM

    Project mention: Kotlin Finite State Machine | reddit.com/r/Kotlin | 2021-04-30

    Mine's in Java and geared towards asynchronous operation but it's perfectly usable from Kotlin and the tests are written in Kotlin: https://github.com/digitalpetri/strict-machine

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2021-06-13.


What are some of the best open-source finite-state-machine projects? This list will help you:

Project Stars
1 stateless4j 677
2 aho-corasick 454
3 jssm 155
4 automata 142
5 hsm 112
6 finity 90
7 Synthesis 71
8 visual-automata 35
9 DiscreteStatePattern 27
10 Vortex-AUV 26
11 strict-machine 5