The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning. Learn more →
Top 11 C++ state-machine Projects
-
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.
-
qpcpp
QP/C++ Real-Time Embedded Framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines
-
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)
-
hsmcpp
C++ based Hierarchical / Finite State Machine library oriented for embedded and RTOS systems.
-
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.
Project mention: Coroutines make robot code easy for high schoolers | news.ycombinator.com | 2023-06-22
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.
Project mention: State machine library for portable embedded application (C++11) | /r/embedded | 2023-06-08
Project mention: State machine library for portable embedded application (C++11) | /r/embedded | 2023-06-08Me and my team faced a similar issue since we often port code between different OS and frameworks (embedded automotive). Unfortunately, I couldn't find anything which fully satisfied our requirements so ended up creating an HSM library myself. You can see it on GitHub and check if it suits your needs: https://github.com/igor-krechetov/hsmcpp
Project mention: Show HN: A C++11 Hierarchical State Machine Library | news.ycombinator.com | 2023-08-08
C++ state-machine related posts
- State machine library for portable embedded application (C++11)
- State machines with C++20 coroutines and Asio/Boost Async
- [Boost::MSM] Huge Memory Usage Issue During Compilation
- State machine suggestion?
- Specifications for an open source finite state machine library
- Facts about State Machines
- Do you use HSM (Hierarcical State Machines)?
-
A note from our sponsor - WorkOS
workos.com | 27 Apr 2024
Index
What are some of the best open-source state-machine projects in C++? This list will help you:
Project | Stars | |
---|---|---|
1 | BehaviorTree.CPP | 2,690 |
2 | sml | 1,072 |
3 | HFSM2 | 434 |
4 | qpcpp | 351 |
5 | hsm | 178 |
6 | hsm | 106 |
7 | hsmcpp | 56 |
8 | compile-time-fsm | 50 |
9 | UIState | 11 |
10 | MyButton_Arduino | 9 |
11 | roost_hsm | 8 |
Sponsored