Home

Awesome

Rotor

rotor is event loop friendly C++ actor micro framework, github abf gitee

telegram CircleCI appveyor codecov Codacy Badge license

features

messaging performance

inter-thread (1)cross-thread (2)single thread (3)
~23.6M messages/second~ 2.5M messages/second~34.6М messages/second

Setup: Intel Core i7-8550U, Void Linux 5.15.

(1) Backend-independent; Can be measured with examples/boost-asio/ping-pong-single-simple, examples/ev/ping-pong-ev.

(2) Does not apply to wx-backend; can be measured with examples/thread/ping-pong-thread, examples/boost-asio/ping-pong-2-threads, examples/ev/ping-pong-ev-2-threads.

(3) Backend-independent inter-thread messaging when build with BUILD_THREAD_UNSAFE=True. rotor objects (messages and actors) cannot be accessed from different threads, cross-thread message sending facility cannot be used. This option is mainly targeted for single-threaded apps.

license

MIT

documentation

Please read tutorial, design principles and manual here

embedded

Looking for something actor-flavored, but suitable for embedded applications? Take a look into my rotor-light project.

Changelog

0.32 (18-Dec-2024)

Example:

  1. an db-actor and opens transaction and reads data (i.e. as std::string_views, owned by db)
  2. actors sends broadcast message to all interesting parties to deserialized data
  3. after the step 2 is finished the db-actor closes transaction and releases acquired resources.

The make_routed_message is needed to perform recipient-agnostic 3rd step.

The alternative is to create a copy (snapshot) of data (i.e. std::string instead of std::string_view), but that seems redundant.

0.31 (18-Oct-2024)

0.30 (23-Apr-2024)

0.29 (24-Feb-2024)

0.28 (22-Jan-2024)

0.27 (21-Jan-2024)

0.26 (08-Jan-2024)

0.25 (26-Dec-2022)

0.24 (04-Jun-2022)

0.23 (23-Apr-2022)

0.22 (21-Apr-2022)

0.21 (25-Mar-2022)

0.20 (20-Feb-2022)

0.19 (31-Dec-2021)

0.18 (03-Dec-2021)

0.17 (23-Oct-2021)

0.16 (22-Aug-2021)

0.15 (02-Apr-2021)

0.14 (20-Feb-2021)

0.13 (26-Dec-2020)

0.12 (08-Dec-2020)

0.11 (20-Nov-2020)

0.10 (09-Nov-2020)

0.09 (03-Oct-2020)

0.08 (12-Apr-2020)

0.07 (02-Apr-2020)

0.06 (09-Nov-2019)

0.05 (22-Sep-2019)

0.04 (14-Sep-2019)

0.03 (25-Aug-2019)

0.02 (04-Aug-2019)

0.01 (24-Jul-2019)