real-time C++ actor micro-framework for embedded systems, supervisable

Ivan Baidakou a92ee43c33 moar docs 2 years ago
docs 1b5ce851e2 moar docs 2 years ago
examples 1b5ce851e2 moar docs 2 years ago
include 86a967afc3 Allow TimePoint and Duration customization (issue 1) 2 years ago
src 03a78a638b Fix warnings 2 years ago
tests 03a78a638b Fix warnings 2 years ago
CMakeLists.txt 86a967afc3 Allow TimePoint and Duration customization (issue 1) 2 years ago
LICENSE 7d3d5124b4 add license 2 years ago
README.md a92ee43c33 moar docs 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

  • asynchornous 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 & binary size

messages/second binary size
host (1) ~48.7M ~26kb
Arduino Uno R3 ~5.2K ~9kb

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.

license

MIT