RxCpp
sobjectizer
Our great sponsors
RxCpp | sobjectizer | |
---|---|---|
6 | 13 | |
2,972 | 456 | |
1.9% | 3.9% | |
0.0 | 9.1 | |
2 months ago | about 1 month ago | |
C++ | C++ | |
Apache License 2.0 | GNU General Public License v3.0 or later |
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.
RxCpp
-
Why doesn't C++ use higher-order functions on iterators like Rust does?
And, prior to that https://github.com/ReactiveX/RxCpp
-
ReactivePlusPlus (reactive programming library for c++20) v0.0.1 is out with base operators (looking for feedback)
Yeah, I know this problem with operators =), original RxCpp implementation also has this problem with implementing all functions into base class and calling dependent functions internally.
-
RxCpp VS ReactivePlusPlus - a user suggested alternative
2 projects | 17 Apr 2022
-
What are some candidate libraries for inter-thread communication like message boxes or event systems?
Also you can check rxcpp with documentation about reactive approach there. It is functional version of observer/publisher-subscriber patterns with ability to be multithreaded. You can send events from one side, subscribe from another and modify events in meanwhile
-
Converting header-only libraries to modules?
I use a very large header-only library RxCpp. Simply adding #include "RxCpp/rx.hpp" to one .cpp file adds >1 second of compilation time. I'd like to use it as a module, but when I try to import "RxCpp/rx.hpp";, I get a bunch of errors.
-
Learning how to create applications with C++ for windows
+1 for Rx, specifically RxCpp. I've used it in concert with Qt with great results.
sobjectizer
-
SObjectizer Tales - 27. Design ideas
An additional rationale for structuring cooperations in hierarchies is to facilitate the sharing and propagation of dispatchers. A recent update of SObjectizer includes new functionalities that allow access to both agent and cooperation dispatchers. This enhancement was prompted by feedback provided by a user and myself.
-
SObjectizer Tales - 26. Dispatcher selection
If a stop signal arrives, it will be enqueued at the end as a demand for image_producer_callback. This means, it will be processed after the other 6 demands currently in the queue. Maybe this is not an issue but in some cases it might be. At this point, another feature of SObjectizer is to consider: agent priorities. Essentially, this feature allows for the demands to be handled in different orders based on the priorities of agents. In this context, if we assign image_producer_callback a higher priority than others, the “stop signal” would be processed before the rest of the requests.
-
SObjectizer Tales - 23. Mutable messages
The real solution consists in using another slick feature of SObjectizer: mutable messages.
-
SObjectizer Tales - 8. Representing errors
However, this kind of filtering is inefficient and might result in a significant run-time cost. Indeed, every empty cv::Mat follows all the message handling workflow, only to be thrown out. Although we expect that empty images will be sporadic, a more idiomatic approach exists: delivery filters.
-
SObjectizer Tales – 6. Is the stream still in progress?
SObjectizer’s agent states are quite sophisticated and provide some utilities that might be useful for developing a working solution. First of all, image_viewer can be modeled as a two-state agent:
-
SObjectizer Tales - 5. Sending commands
An alternative way is using SObjectizer’s timers.
-
Multiplayer, multithreading, and an actor model in C++
Those who came looking for actor model examples should check out sobjectizer
-
What are some candidate libraries for inter-thread communication like message boxes or event systems?
In sobjectizer the ownership is held by "environment" , while in rotor each thread must held appropriate context, when actor environment is running.
-
Sender and Receiver implementations
May be actor frameworks like caf, sobjectizer or rotor is something, that you are looking for.
-
Italian C++ Meetup: SObjectizer, a C++ tool for Concurrent Programming (Nicolai Grodzitski)
SObjectizer on GitHub
What are some alternatives?
NumCpp - C++ implementation of the Python Numpy library
concurrencpp - Modern concurrency for C++. Tasks, executors, timers and C++20 coroutines to rule them all
ReactivePlusPlus - Implementation of async observable/observer (Reactive Programming) in C++ with care about performance and templates in mind in ReactiveX approach
eCAL - Please visit the new repository: https://github.com/eclipse-ecal/ecal
etl - Embedded Template Library
rotor - Event loop friendly C++ actor micro-framework, supervisable
Aeron - Efficient reliable UDP unicast, UDP multicast, and IPC message transport
iceoryx - Eclipse iceoryx™ - true zero-copy inter-process-communication
benchmarks - Latency benchmarks for messaging
FunctionalPlus - Functional Programming Library for C++. Write concise and readable C++ code.
thread-pool - BS::thread_pool: a fast, lightweight, and easy-to-use C++17 thread pool library