yasmine the Cplusplus11 state machine framework - SeadexGmbH/yasmine GitHub Wiki
yasmine is a C++11 state machine framework developed by Seadex.
yasmine is an easy to use high level UML state machine abstraction that nicely integrates with modern object oriented C++ code.
We created her, because we often use state machines in the projects we work on. And using existing solutions was not quite satisfying. Some didn't feel like they integrated into modern C++ code nicely (coded in C, switch case based, ...), others required the overhead of big frameworks. Then in some cases pulling in closed source libraries is a problem, because risk assessment is tricky (medical applications). And then there are solutions that seem quite nice, but never matured, are not maintained or poorly maintained, or poorly documented.
yasmine adheres as closely as possible to the UML state machine semantics. Key features are hierarchical states, orthogonal regions, and the support of run-to-completion semantics. For detailed information read more about her features in the documentation. We are planning to create a whole ecosystem around the core library, that makes creating and maintaining state machine easier and more comfortable.
Discover yasmine starting in the wiki or visit yasmine's offical web page for more details!