HFSM2
CppML
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.
HFSM2
- State machine library for portable embedded application (C++11)
- HFSM2 development might slow down
-
Introducing FFSM2 and HFSM2 state machine libraries
Here is a gist showing a 3 level hierarchy using sml. https://gist.github.com/indiosmo/08ab24181770125d5a2448d27f6ae99f. Comparing the two, esp. when anything related to *hierarchical* state machines are involved, I strongly prefer HFSM2. Even when comparing the source code, I prefer HFSM2 https://github.com/andrew-gresyk/HFSM2/blob/master/include/hfsm2/machine.hpp to boost::sml https://github.com/boost-ext/sml/blob/master/include/boost/sml.hpp.
CppML
-
Recommendation on resources about creating C++ template libraries
If you are interested in metaprogramming, you could take a look at cppML: a concise and readable metalanguage for c++. The repository contains a tutorial which explains how it is designed and why. To take it further, you can read about how it can be used to optimize the memory layout of std::tuple.
What are some alternatives?
roost-hsm - Hierarchical State Machines in C++. A (sane) alternative to Boost MSM.
constexpr-sql - Header only library that parses and plans SQL queries at compile time
sml - C++14 State Machine library
range-v3 - Range library for C++14/17/20, basis for C++20's std::ranges
amp-embedded-infra-lib - amp-embedded-infra-lib is a set of C++ libraries and headers that provide heap-less, STL like, infrastructure for embedded software development
CppCoreGuidelines - The C++ Core Guidelines are a set of tried-and-true guidelines, rules, and best practices about coding in C++
csv2 - Fast CSV parser and writer for Modern C++
optimizing-the-memory-layout-of-std-tuple - Optimizing the memory layout of std::tuple
BackportCpp - Library of backported modern C++ types to work with C++11
hsm - C++ framework library to simplify state-driven code
hfst - Helsinki Finite-State Technology (library and application suite)
entt - Gaming meets modern C++ - a fast and reliable entity component system (ECS) and much more