A minimalistic, event loop friendly C++ actor micro-framework with Erlang-like supervisor trees for building reliable concurrent applications.
rotor is an event loop friendly C++ actor micro-framework that enables developers to build concurrent, fault-tolerant applications using the actor model. It provides Erlang-like supervisor trees for managing actor lifecycles and failures, along with high-performance asynchronous message passing. The framework is designed to integrate with various event loop backends, making it suitable for GUI applications, network servers, and embedded systems.
C++ developers building concurrent systems, network servers, GUI applications, or embedded software who need a lightweight, reliable actor framework with supervisor capabilities.
Developers choose rotor for its minimalistic design, seamless integration with multiple event loops, and robust supervisor hierarchies that ensure application reliability. Its high-performance messaging and cross-platform support make it a versatile choice for demanding C++ projects.
Event loop friendly C++ actor micro-framework, supervisable
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports multiple backends like wx, Boost.Asio, ev, and FLTK, allowing seamless integration into diverse applications without locking into a single loop, as outlined in the README.
Provides hierarchical supervisors for fault tolerance, enabling automatic failure management and actor lifecycle control, detailed in linked blog posts and examples.
Optimized for low-latency with benchmarks showing millions of messages per second, such as ~31.6M inter-thread messages, making it suitable for high-throughput systems.
Runs on Windows, macOS, and Linux, ensuring broad deployment options for cross-platform C++ projects without modification.
Focuses on a lightweight design, reducing overhead and making it adaptable for resource-constrained environments, including embedded systems via rotor-light.
Requires setting up CMake options for different backends and has a steep learning curve for event loop integration, which can be time-consuming and error-prone.
The changelog shows regular API breaks (e.g., in versions 0.35, 0.34), necessitating code updates and potentially disrupting development and maintenance.
As a niche project, it has a smaller ecosystem compared to alternatives, leading to fewer third-party plugins, examples, and support resources.
While documentation is available online, the README is brief, and users often need to rely on external blogs and examples for practical implementation guidance.