real-time C++ actor micro-framework for embedded systems, supervisable
Ivan Baidakou fad061b55b update docs | %!s(int64=2) %!d(string=hai) anos | |
---|---|---|
docs | %!s(int64=2) %!d(string=hai) anos | |
examples | %!s(int64=2) %!d(string=hai) anos | |
include | %!s(int64=2) %!d(string=hai) anos | |
src | %!s(int64=2) %!d(string=hai) anos | |
tests | %!s(int64=2) %!d(string=hai) anos | |
CMakeLists.txt | %!s(int64=2) %!d(string=hai) anos | |
LICENSE | %!s(int64=2) %!d(string=hai) anos | |
README.md | %!s(int64=2) %!d(string=hai) anos |
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)
C++17
no thread-safety
no allocations, no exceptions, no RTTI
non-intrusiveness
compile-time actor hierarchies
messages/second | binary size | |
---|---|---|
host (1) | ~64.4M | 10379 bytes |
STM32-H743ZI | ~2.8M | 14330 bytes |
stm32f407g-discovery | ~0.52M | 4336 bytes |
Arduino Uno R3 (2) | ~29.5K | 5714 bytes |
xilinx microblaze (3) | ~58.8K | 42868 byes |
All examples can be measured with examples/ping-pong-throughput.cpp
,
compiled with CMAKE_BUILD_TYPE=MinSizeRel
and the stripped
(1) Setup: Intel Core i7-8550U, Void Linux 5.15.
(2) Build with -DROTOR_LIGHT_ACTOR=uint8_t
(2) 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.
MIT