Amast is a minimalist asynchronous toolkit that makes it easier to develop C language based projects. Written in C99.
- finite state machine (FSM) (documentation)
- hierarchical state machine (HSM) with submachines support (documentation, examples)
- async/await (documentation)
- doubly and singly linked lists
- onesize memory allocator
- timers
- events
On Linux or WSL:
Install pixi.
Run pixi run all
.
Include amast.h
, amast_config.h
and amast.c
from the latest release to your project.
If you want to use Amast features that require porting, then also add one of the following ports to you project:
amast_posix.c
amast_freertos.c
If you want to run Amast unit tests, then also include amast_test.h
and amast_test.c
.
Makefile
is available for optional use. Run make test
to run unit tests.
The project uses "Discussions" instead of "Issues".
"Discussions" tab has different discussion groups for "Features" and "Bugs".
For making sure issues are addressed, both me and the community can better evaluate which issues and features are high priority because they can be "upvoted".
If you find the project useful, then please star it. It helps promoting it.
If you find any bugs, please report them.
Amast is open-sourced software licensed under the MIT license.