A framework for
Event-Driven Embedded Systems in C,
it is an open source replacement for
the famous main's superloop
Every embedded system has a real time and a reactive component. Even if not aware, engineers already code reactive applications. Using react.o you can do it better, with a generic framework to provide architectural foundation engineers can produce greatly scalable and maintainable firmwares.
The reactive engine
It is a Main Loop, with multiple Event Queues where Handlers are connected to process events. Complex data paths are simplified, concurrency is minimized while parallelism boosted and worst case real-time scenario is easier to estimate. (Don't know how reactive application works?)
You break your problems in many small pieces and get a highly responsible, decoupled and scalable application.
It relies only on the GNU C standards and a few stdlib functions.
Use a Timed Queue to schedule jobs to run later.
Messaging algorithms are zero copy.
It is deterministic
Event handling time is deterministic. Simply setup Queues priorities to meet real-time requirements.
It can run fine in a 16 bit micro-controller, consuming from 1 KiB of flash memory.
You can make use of available Array, Linked List, FIFO and more.
Using a generic framework requires engineers to write, test and debug less code.
New features release
- A new Context and its Factory to ease objects creation;
- Real-time monitoring with AB Timing module;
- Time unit is now configurable;
- Advanced Main Loop sleep;
- An improved cross platform build system.
Core features release
- Main Loop where everything is called from;
- Queue to enqueue and handle events;
- Timed Queue to defer jobs.