mdeloof / statig

Hierarchical state machines for designing event-driven systems
https://crates.io/crates/statig
MIT License
560 stars 18 forks source link

Add feature matrix support #2

Closed zamazan4ik closed 1 year ago

zamazan4ik commented 1 year ago

Hi! Thanks for the library.

I have some experience with Hierarchial State Machines in C++ world. I've used HSM library: https://github.com/erikzenker/hsm

Could you please compare statig to the HSM? E.g. which feature from HSM are already supported in statig. I hope HSM would be for you at least a good roadmap :)

Thanks in advance!

mdeloof commented 1 year ago

Hi, thanks for taking a look at statig. I did my best to do create somewhat of a comparison between statig and HSM. There are a couple of points that could probably use a more in-depth exploration but I haven't personally used HSM, so I'm hesitant to go into great detail for now. I do want to state that it isn't the goal of statig to implement the full UML spec for state machines. My main inspiration was the work of Miro Samek and the state machines as implemented in the Quantum Framework library. In his book Pracical UML Statecharts in C/C++ he goes into great detail on why he chose to implement certain features but also why he dismissed others, and generally I agree with his conclusions. But anyway, here is a rough comparison of statig with HSM.

Feel free to respond with your thoughts. I'm curious to hear if there any things you'd miss from HSM.