|Ivan Baidakou 90a4f366aa add generic non-public fields accessor for meta-queue||10 months ago|
|docs||1 year ago|
|examples||1 year ago|
|include||10 months ago|
|src||11 months ago|
|tests||11 months ago|
|CMakeLists.txt||1 year ago|
|LICENSE||1 year ago|
|README.md||1 year ago|
rotor-light is real-time platform-neutral, C++ actor micro-framework for embedded systems with supervising capabilities.
rotor-light is built with the concurrency in the mind, i.e. independent entities (actors) interact each other via messages.
rotor-light is adoption of rotor framework for embedded systems. The framework has no platform-dependent code, so, it can, however, be used as is on host system, if you cautiously care about thread-safety.
Tutorial, concepts and API reference can be found here
erlang-like hierarchical supervisors
asynchronous messaging with priorities
plaform-agnostic code (including timers)
no allocations, no exceptions, no RTTI
compile-time actor hierarchies
|host (1)||~64.4M||10379 bytes|
|Arduino Uno R3 (2)||~29.5K||5714 bytes|
|xilinx microblaze (3)||~58.8K||42868 byes|
All examples can be measured with
CMAKE_BUILD_TYPE=MinSizeRel and the stripped
(1) Setup: Intel Core i7-8550U, Void Linux 5.15.
(2) Build with
(3) Zynq xc7z020clg400-1, QMTECH development board. Microblaze standard config, hw mul/div instr. enabled, clocking is 50Mhz.
The performance numbers are approximate and they are not constant. Actually message delivery depends on many factrors like number of queues, number of actors, number of supervisors, number of subscriptions.
blink-led examples for different platforms.
If the examples are too trivial you can look at my example of using
one-wire DHT11 sensor and UART for logging, everything is async &
arduino there is an example too.