暫無描述

Ivan Baidakou ade4ce9198 fix typos 2 年之前
docs ade4ce9198 fix typos 2 年之前
examples e747338615 refactor events api & events internals 2 年之前
include 50bd829dd1 more clean impl (but still buggy) 2 年之前
src 50bd829dd1 more clean impl (but still buggy) 2 年之前
tests 50bd829dd1 more clean impl (but still buggy) 2 年之前
CMakeLists.txt 2a16b476fb improve performance 2 年之前
LICENSE 7d3d5124b4 add license 2 年之前
README.md 2a16b476fb improve performance 2 年之前

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) ~55.3M 13143 bytes
STM32-H743ZI ~2.3M 14330 bytes
Arduino Uno R3 (2) ~15.8K 6546 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.

license

MIT