copper
rotor
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.
copper
-
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.
-
What are some candidate libraries for inter-thread communication like message boxes or event systems?
In the meantime, are you aware of any projects that are similar? Have you come across copper? It looks nicely designed - is this the kind of thing you imagine would be similar?
-
Richard’s May 2021 Update - Go channels in C++ - part 1
You might be interested in having a look at my recent library with a similar goal: https://github.com/atollk/copper
-
Copper: Powerful and convenient communication between threads
Looking at the reference docs, and just wow. This is a very well documented project, great work!
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?
RxCpp - Reactive Extensions for C++
C++ Actor Framework - An Open Source Implementation of the Actor Model in C++
Aeron - Efficient reliable UDP unicast, UDP multicast, and IPC message transport
Boost.Asio - Asio C++ Library
so5-dining-philosophers - Several implementations of solutions for "Dining Philosophers" problem built by using Actor and CSP models on top of SObjectizer framework
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++
Disruptor-cpp - Port of LMAX Disruptor to C++
uvw - Header-only, event based, tiny and easy to use libuv wrapper in modern C++ - now available as also shared/static library!
benchmarks - Latency benchmarks for messaging
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.