statig
Hierarchical state machines for designing event-driven systems (by mdeloof)
hsmcpp
C++ based Hierarchical / Finite State Machine library oriented for embedded and RTOS systems. (by igor-krechetov)
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
statig
Posts with mentions or reviews of statig.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-01-11.
-
Hierarchical state machine in Rust with `statig`
I went through multiple iterations for the design before arriving on something that (to me at least) feels clean and is easy to maintain. But of course I’m a bit biased and I’m curious to hear what other people think. So if this sounds interesting to you be sure to check out the repo!
-
Accessing embedded peripherals from state machine
I'm trying to make a blinky app targeting the ESP32-C3 using [statig HSM crate](https://github.com/mdeloof/statig) but I can't figure out how to access pins (or other peripherals) from the states.
-
Announcing `statig`: Hierarchical state machines for event-driven systems (using GAT’s)
The thing is that these handlers can result in different transitions or even no transitions at all (see the calculator example). Maybe one way to think of it is that "state" is the result of all events that have occurred and determines how the system responds to new events. So in that sense the method is the state. (Idk, does that make sense?)
hsmcpp
Posts with mentions or reviews of hsmcpp.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-06-08.
-
State machine library for portable embedded application (C++11)
Me 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
What are some alternatives?
When comparing statig and hsmcpp you can also consider the following projects:
stateright - A model checker for implementing distributed systems.
VibSense - VibSense: A ~3kHz wireless vibration sensor powered by M5stack-core & MPU6886, optimized with RTOS for real-time measurements.
bonsai - Rust implementation of AI behavior trees.
HFSM2 - High-Performance Hierarchical Finite State Machine Framework
bitfield-struct-rs - Procedural macro for bitfields.
roost_hsm - A C++11 Hierarchical State Machine Library
esp-idf-template - A "Hello, world!" template of a Rust binary crate for the ESP-IDF framework.
hsm - C++ framework library to simplify state-driven code