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

Top 23 state-machine Open-Source Projects

  • GitHub repo xstate

    State machines and statecharts for the modern web.

    Project mention: XState: The Solution to All Your App State Problems | dev.to | 2021-06-06

    There are numerous state management libraries that use state machines but for this example, I’ll use XState.

  • GitHub repo ui-router

    The de-facto solution to flexible routing with nested views in AngularJS

    Project mention: How to do Routing from one component to another component of different modules ? | reddit.com/r/angularjs | 2021-03-30


  • GitHub repo AASM

    AASM - State machines for Ruby classes (plain Ruby, ActiveRecord, Mongoid, NoBrainer, Dynamoid)

    Project mention: Code review of an Order object implemented as a state machine | reddit.com/r/ruby | 2021-03-21

    AASM gem is great too! Easy to use and actively maintained.

  • GitHub repo transitions

    A lightweight, object-oriented finite state machine implementation in Python with many extensions

    Project mention: Curious to hear your life goals | reddit.com/r/intj | 2021-04-26

    Start with that you know, if you know Excel well, why not start there? I usually recommend Python if you’re new to programming, then you can pick whatever additional libraries you think would benefit the model, and the syntax is highly forgiving. Sounds to me like you’re describing a pretty big finite state machine, with 288 states. Once you encode your idea and some tests, you’ll have the vocabulary (and means) to expand to other model variations such as applying probabilities to different transition states, and opening a whole world of probabilistic models and hidden Markov models, but gotta walk before running :)

  • GitHub repo aws-lambda-power-tuning

    AWS Lambda Power Tuning is an open-source tool that can help you visualize and fine-tune the memory/power configuration of Lambda functions. It runs in your own AWS account - powered by AWS Step Functions - and it supports three optimization strategies: cost, speed, and balanced.

    Project mention: 6 AWS Lambda Cost Optimization Strategies that Work | dev.to | 2021-05-06

    Another way would be utilizing Step-Functions to find the optimal memory capacity for your functions. Here's an open-source module built by Sr. Tech. Evangelist Alex Casalboni of AWS.

  • GitHub repo Workflow

    Ruby finite-state-machine-inspired API for modeling workflow (by geekq)

  • GitHub repo FiniteMachine

    A minimal finite state machine with a straightforward syntax.

  • GitHub repo state_machines

    Adds support for creating state machines for attributes on any Ruby class

    Project mention: Ruby 3 Released | reddit.com/r/programming | 2020-12-24

    Here's an example of how it can happen - look at the code examples in https://github.com/state-machines/state_machines - almost everything you are coding is in the DSL of that library if you are using it:

  • GitHub repo sml

    SML: C++14 State Machine Library

    Project mention: Where is C++ used in Embedded Systems | reddit.com/r/embedded | 2021-05-31

    All great talks, and totally agree on all points. A library that I like to point people towards that really shows off the power of modern c++ in embedded is boost sml. It's for implementing state machines in a ridiculously more elegant, readable, and maintainable way compared to a huge rats nest of if/else/case statements. If you can use it (requires c++11), it truly is a lifesaver.

  • GitHub repo Automatonymous

    A state machine library for .Net - 100% code - No doodleware

  • GitHub repo qpc

    QP/C real-time embedded framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines

    Project mention: I made a state machine compiler that outputs C | reddit.com/r/embedded | 2021-03-19

    HSM-test code in C (on GitHub)

  • GitHub repo Machinery

    State machine thin layer for structs (+ GUI for Phoenix apps) (by joaomdmoura)

  • GitHub repo workflow-kotlin

    A Swift and Kotlin library for making composable state machines, and UIs driven by those state machines.

    Project mention: Tap Response Time: Jetpack Navigation 🗺 | dev.to | 2021-04-24

    We'll focus on Jetpack Navigation here, however most of the content applies for any navigation library or tap action. In fact, I first implemented this at Square on top of Flow and Workflow.

  • GitHub repo stateless

    Go library for creating state machines (by qmuntal)

    Project mention: README localization, is it worth it? | reddit.com/r/golang | 2021-05-17

    I'm thinking of translating the README.md of https://github.com/qmuntal/stateless, as it contains useful documentation on how to use the library and it may be useful for some non-English speakers to have it in their own language.

  • GitHub repo ModernAVPlayer

    ModernAVPlayer is a persistence AVPlayer wrapper

  • GitHub repo LiquidState

    Efficient asynchronous and synchronous state machines for .NET

  • 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 Workflow Server

    Workflow Server is a ready-to-use Workflow Engine-based application that you can deploy into your infrastructure. It can be integrated with NodeJS, PHP, Ruby, .NET, or Java applications via a REST API. Workflow Server is a key component for managing the lifecycle of business objects within your enterprise. (by optimajet)

  • 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 Trapheus

    This tool automates restoration of RDS database instances from snapshots into any dev, staging or production environments. It supports individual RDS Snapshot as well as cluster snapshot restore operations.

    Project mention: Cleanest and easiest way to take a copy of production RDS database and copy to staging every night | reddit.com/r/aws | 2021-03-23

    Check out Trapheus if you haven’t already. It uses step functions to orchestrate the process for you. If you feel it’s overkill, it’ll at least give you all of the steps/APIs you need at each step of the process: https://github.com/intuit/Trapheus

  • GitHub repo aasm.cr

    :arrows_clockwise: Easy to use finite state machine for Crystal classes

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-06.


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

Project Stars
1 xstate 16,387
2 ui-router 13,772
3 AASM 4,323
4 transitions 3,741
5 aws-lambda-power-tuning 2,483
6 Workflow 1,603
7 FiniteMachine 784
8 state_machines 583
9 sml 581
10 Automatonymous 539
11 qpc 409
12 Machinery 377
13 workflow-kotlin 312
14 stateless 274
15 ModernAVPlayer 201
16 LiquidState 199
17 jssm 155
18 Workflow Server 129
19 hsm 112
20 finity 90
21 Synthesis 71
22 Trapheus 53
23 aasm.cr 42