No Description

Andrey Nikolaev 5b1a4332d1 throughput example 2 years ago
docs 623e7b8cf9 minor cleanings 2 years ago
examples 5b1a4332d1 throughput example 2 years ago
include 623e7b8cf9 minor cleanings 2 years ago
src 623e7b8cf9 minor cleanings 2 years ago
tests 03a78a638b Fix warnings 2 years ago
CMakeLists.txt e04486c95e minor fixes 2 years ago
LICENSE 7d3d5124b4 add license 2 years ago
README.md 06cdab196b major examples refactoring 2 years ago

README.md

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.

features

  • 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

ping-pong messaging performance & .text section size

messages/second binary size
host (1) ~47.7M 13026 bytes
Arduino Uno R3 ~10.0K 8872 bytes
xilinx microblaze (2) ~58.8K 42868 byes
STM32-H743ZI ... 13724 bytes

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) Zynq xc7z020clg400-1, QMTECH development board. Microblaze standard config, hw mul/div instr. enabled, clocking is 50Mhz.

license

MIT