{"id":15047423,"url":"https://github.com/digint/tinyfsm","last_synced_at":"2025-05-16T11:03:49.413Z","repository":{"id":17058795,"uuid":"19823426","full_name":"digint/tinyfsm","owner":"digint","description":"A simple C++ finite state machine library","archived":false,"fork":false,"pushed_at":"2024-06-25T23:43:36.000Z","size":104,"stargazers_count":1020,"open_issues_count":23,"forks_count":178,"subscribers_count":39,"default_branch":"master","last_synced_at":"2025-05-16T11:03:30.766Z","etag":null,"topics":["c-plus-plus","cpp-library","cpp11","header-only","state-machine"],"latest_commit_sha":null,"homepage":"https://digint.ch/tinyfsm","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/digint.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-05-15T14:54:44.000Z","updated_at":"2025-05-14T13:44:49.000Z","dependencies_parsed_at":"2024-12-13T05:02:53.115Z","dependency_job_id":"099baf32-475f-45f0-9148-0186204d8bea","html_url":"https://github.com/digint/tinyfsm","commit_stats":{"total_commits":88,"total_committers":2,"mean_commits":44.0,"dds":"0.011363636363636354","last_synced_commit":"01908cab0397fcdadb0a14e9a3187c308e2708ca"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digint%2Ftinyfsm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digint%2Ftinyfsm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digint%2Ftinyfsm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digint%2Ftinyfsm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/digint","download_url":"https://codeload.github.com/digint/tinyfsm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254518384,"owners_count":22084374,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-plus-plus","cpp-library","cpp11","header-only","state-machine"],"created_at":"2024-09-24T20:58:06.846Z","updated_at":"2025-05-16T11:03:49.389Z","avatar_url":"https://github.com/digint.png","language":"C++","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=QZQE9HY6QHDHS"],"categories":["State Machine"],"sub_categories":[],"readme":"TinyFSM\n=======\n\nTinyFSM is a simple finite state machine library for C++, designed for\noptimal performance and low memory footprint. This makes it ideal for\nreal-time operating systems. The concept is very simple, allowing the\nprogrammer to fully understand what is happening behind the scenes. It\nprovides a straightforward way of mapping your state machine charts\ninto source code.\n\nTinyFSM basically wraps event dispatching into function calls, making\nevent dispatching equally fast to calling (or even inlining) a\nfunction. Even in the worst case, dispatching leads to nothing more\nthan a single vtable lookup and function call!\n\nKey Features:\n\n - Entry/exit actions\n - Event actions\n - Transition functions\n - Transition conditions\n - Event payload (classes)\n - Inheritance of states and action functions\n\nTinyFSM benefits from the C++11 template metaprogramming features like\nvariadic templates, and does not depend on RTTI, exceptions or any\nexternal library.\n\n\nOfficial home page: \u003chttps://digint.ch/tinyfsm\u003e\n\nCurrent version: `0.3.3`\n\n\nInstallation\n------------\n\nTinyFSM is a header-only library, no special installation steps are\nneeded. Just point your compiler to the \"include\" directory.\n\n\nDocumentation\n-------------\n\nYou can find the full documentation in the `doc/` directory:\n\n - [Introduction](/doc/10-Introduction.md)\n - [Installation](/doc/20-Installation.md)\n - [Concepts](/doc/30-Concepts.md)\n - [Usage](/doc/40-Usage.md)\n - [API](/doc/50-API.md)\n\nThe docmentation is also available on the [official home\npage](https://digint.ch/tinyfsm/doc/introduction.html).\n\n\n### Code examples\n\n - [Elevator Project]: Documented example, two state machines with\n   shiny buttons, floor sensors and actors.\n - [Simple Switch]: A generic switch with two states (on/off).\n - [API examples]\n\n  [Elevator Project]: /examples/elevator/\n  [Simple Switch]:    /examples/api/simple_switch.cpp\n  [API Examples]:     /examples/api/\n\n\nDonate\n------\n\nSo TinyFSM has proven useful for you?\n\nI will definitively continue to develop TinyFSM for free. If you want\nto support me with a donation, you are welcome to do so!\n\n[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=QZQE9HY6QHDHS)\n\n\nDevelopment\n-----------\n\nThe source code for TinyFSM is managed using Git:\n\n    git clone https://dev.tty0.ch/tinyfsm.git\n\nMirror on GitHub:\n\n    git clone https://github.com/digint/tinyfsm.git\n\nIf you would like to contribute or have found bugs, visit the [TinyFSM\nproject page on GitHub] and use the [issues tracker] there.\n\n  [TinyFSM project page on GitHub]: http://github.com/digint/tinyfsm\n  [issues tracker]: http://github.com/digint/tinyfsm/issues\n\n\nContact\n-------\n\nFor questions and suggestions regarding TinyFSM, success or failure\nstories, and any other kind of feedback, please feel free to contact\nthe author (the email address can be found in the sources).\n\n\nLicense\n-------\n\nTinyFSM is [Open Source] software. It may be used for any purpose,\nincluding commercial purposes, at absolutely no cost. It is\ndistributed under the terms of the [MIT license].\n\n  [Open Source]: http://www.opensource.org/docs/definition.html\n  [MIT license]: http://www.opensource.org/licenses/mit-license.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigint%2Ftinyfsm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdigint%2Ftinyfsm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigint%2Ftinyfsm/lists"}