A framework for
Event-Driven Embedded Systems in C,
it is an open source replacement for
the famous main's superloop
Why event-driven?
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?)
Better architecture
You break your problems in many small pieces and get a highly responsible, decoupled and scalable application.
Portable
It relies only on the GNU C standards and a few stdlib functions.
Deferred work
Use a Timed Queue to schedule jobs to run later.
Fast
Messaging algorithms are zero copy.
It is deterministic
Event handling time is deterministic. Simply setup Queues priorities to meet real-time requirements.
Small
It can run fine in a 16 bit micro-controller, consuming from 1 KiB of flash memory.
Extra Classes
You can make use of available Array, Linked List, FIFO and more.
Develop faster
Using a generic framework requires engineers to write, test and debug less code.
Change log
Release 0.1.0-rc2
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.
Release 0.1.0-rc1
Core features release
- Main Loop where everything is called from;
- Queue to enqueue and handle events;
- Timed Queue to defer jobs.