Disruptor-cpp
rotor
Our great sponsors
Disruptor-cpp | rotor | |
---|---|---|
1 | 8 | |
328 | 327 | |
0.0% | - | |
0.0 | 8.9 | |
over 1 year ago | 2 days ago | |
C++ | C++ | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Disruptor-cpp
-
What are some candidate libraries for inter-thread communication like message boxes or event systems?
If low latency / performance is important then something like aeron: https://github.com/real-logic/aeron or the disruptor pattern: https://github.com/Abc-Arbitrage/Disruptor-cpp are good options. Aeron supports network message but requires a driver to be running on the system even for IPC. Disruptor is thread to thread messaging only and doesn't need drivers etc - just a normal library.
rotor
-
OpenMP on heterogenous CPUs
If your architecture fits into inter-process messaging, i.e. spawn threads which do similar or different tasks and inform each other via messages, try to use actor framework, i.e. rotor (disclaimer: I'm the author). If there is a need to expand messaging even more, i.e. across the network, you can try to use caf, which provides that facility out of the box.
-
Multiplayer, multithreading, and an actor model in C++
What you achieved, is handlers decoupling, i.e. when one handler knows nothing about other handler, which leads to good application testability. However, with standard promise/future bases messaging, if performance matters (and it usually does, otherwise why use C++?), i doubt that your implementation overwhelms the performance of specialized actor libraries, like sobjectizer ("batteries included" actors toolbox) or rotor (DIY-like actor constructor set; disclaimer: I'm the author of it).
- C++ Show and Tell - July 2022
-
Embedded Linux libraries/frameworks
I have been reading the documents from Boost.fibre and Boost.Signals2 which I could use, maybe ASIO for async. I also checked ZeroMQ (this seems to be more or less "only" for networking), Copper and Rotor. If this were just a simple MCU project I would just take the FreeRTOS and would have everything I need. Now I'm just lost how to structure my code / how to realize my main loop.
-
rotor, Erlang-inpired C++ microframework with supervising capabilities
I would like to present my project rotor, which is event loop friendly C++ actor micro framework with Erlang-like microframework with supervising capabilities.
-
What are some candidate libraries for inter-thread communication like message boxes or event systems?
rotor actor library (I'm the author) was designed to solve similar problem, which I named "actor intrusiveness", when almost every piece of code should be written in form of actor, and, the working threads, which spin actors, are out of your control.
-
Light Actor Concurrency Framework for C++
PS. I'm the author of rotor framework )
-
Sender and Receiver implementations
May be actor frameworks like caf, sobjectizer or rotor is something, that you are looking for.
What are some alternatives?
Aeron - Efficient reliable UDP unicast, UDP multicast, and IPC message transport
C++ Actor Framework - An Open Source Implementation of the Actor Model in C++
benchmarks - Latency benchmarks for messaging
Boost.Asio - Asio C++ Library
Rx.NET - The Reactive Extensions for .NET
libuv - Cross-platform asynchronous I/O
BlockingCollection - C++11 thread safe, multi-producer, multi-consumer blocking queue, stack & priority queue class
Dasynq - Thread-safe cross-platform event loop library in C++
RxCpp - Reactive Extensions for C++
uvw - Header-only, event based, tiny and easy to use libuv wrapper in modern C++ - now available as also shared/static library!
sobjectizer - An implementation of Actor, Publish-Subscribe, and CSP models in one rather small C++ framework. With performance, quality, and stability proved by years in the production.