The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning. Learn more →
Top 23 state-machine Open-Source Projects
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
-
transitions
A lightweight, object-oriented finite state machine implementation in Python with many extensions
-
AASM
AASM - State machines for Ruby classes (plain Ruby, ActiveRecord, Mongoid, NoBrainer, Dynamoid)
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
laudspeaker
📢 Laudspeaker is an Open Source Customer Engagement and Product Onboarding Platform. Open Source alternative to Braze / One Signal / Customer Io / Appcues / Pendo . Use Laudspeaker to design product onboarding flows and send product and event triggered emails, sms, push and more.
-
workflow
A Swift and Kotlin library for making composable state machines, and UIs driven by those state machines. (by square)
-
nodify
Highly performant and modular controls for node-based editors designed for data-binding and MVVM.
-
workflow-kotlin
A Swift and Kotlin library for making composable state machines, and UIs driven by those state machines.
-
qpc
QP/C Real-Time Embedded Framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
XState is a powerful library with comprehensive documentation. Keeping the documentation handy while building your next app with XState will be invaluable.
Project mention: transitions VS python-statemachine - a user suggested alternative | libhunt.com/r/transitions | 2023-09-26
Project mention: Coroutines make robot code easy for high schoolers | news.ycombinator.com | 2023-06-22
https://news.ycombinator.com/item?id=39836316
Laudspeaker | Remote| Full Time | Senior Software Eng / Founding Eng
We posted on hacker news a few days ago - you can see the whole post here (https://news.ycombinator.com/item?id=39836316)
Summary below:
We are building a new, open source suite of software tools to completely handle the "customer journey". You can see our repo here: https://github.com/laudspeaker/laudspeaker
We are a small team of 3, had a successful launch on HN a year ago, are backed by YC, and and are now starting to close large companies deploying our software to touch millions of users.
Who You Are:
Anyway the need is not complicated, I need both entry and exit functions from every state, optionally allowing these functions to be coroutines (that's special sauce but for later), and an explicit state transition table which also have a way to say that a state can be accessed at any point. Also allow states to be state machines, optional FSM hierarchies. If you ignore the coroutine stuff it's pretty standard features these days, except that - Boost.MSM is quite archaic now (it was so novel when it was first released...) although it allows most of the features I talked about, I just think it will complicate my code unneecessarilly; - Boost-Ext.SML (not Boost) is almost perfect except it doesnt have entry/exit functions on states for some reason. Also last time we (as in in livestream) tried it in prototypes it didnt compile on msvc XD - Boost-Ext.SML2 is even better but still doesnt have entry/exit functions although it's in the plans.
For example square has open sourced workflow https://github.com/square/workflow-kotlin (MVI + plugin based architecture), if you look other examples like molecule they use Presenters (not the MVP ones) which is completly different. The only common thing is that they are both UDF.
Project mention: Dear Reddit members, could you recommend a YouTube or something that makes TopDown Boss Monster? | /r/Unity2D | 2023-12-07I used this video https://www.youtube.com/watch?v=jnETyJUiCiM which uses this state machines https://github.com/Inspiaaa/UnityHFSM/. It is very informative and i like how in the video you use colliders to trigger different states.
Project mention: Gem adds support for creating state machines for attributes on any Ruby class | news.ycombinator.com | 2024-01-21
Project mention: transitions VS python-statemachine - a user suggested alternative | libhunt.com/r/transitions | 2023-09-26Another state machine library.
Originally created for React web apps. Difficult to navigate the code, messy side-effects. ReSwift is a prominent implementation for iOS, although the project doesn’t show much activity anymore. There are others. SwiftRex, for example.
state-machine related posts
- Mastering XState Fundamentals: A React-powered Guide
- Unleashing the Power of Actors in Frontend Application Development
- Gem adds support for creating state machines for attributes on any Ruby class
- Rethinking State Management - Why XState is a Game-Changer for Developers
- Get out of state management hell with automatic revalidation
-
transitions VS python-statemachine - a user suggested alternative
2 projects | 26 Sep 2023
- Show HN: driver – a TypeScript pkg for declaring finite states via boolean logic
-
A note from our sponsor - WorkOS
workos.com | 24 Apr 2024
Index
What are some of the best open-source state-machine projects? This list will help you:
Project | Stars | |
---|---|---|
1 | xstate | 26,119 |
2 | ui-router | 13,564 |
3 | transitions | 5,346 |
4 | AASM | 4,945 |
5 | P | 2,911 |
6 | BehaviorTree.CPP | 2,679 |
7 | useStateMachine | 2,360 |
8 | Workflow | 1,730 |
9 | laudspeaker | 1,389 |
10 | workflow | 1,106 |
11 | nodify | 1,080 |
12 | sml | 1,072 |
13 | workflow-kotlin | 977 |
14 | qpc | 889 |
15 | UnityHFSM | 864 |
16 | FiniteMachine | 804 |
17 | state_machines | 793 |
18 | stateless | 774 |
19 | Automatonymous | 727 |
20 | python-statemachine | 649 |
21 | SwiftRex | 621 |
22 | GoNorth | 556 |
23 | statig | 534 |
Sponsored