concurrencpp
stdexec
concurrencpp | stdexec | |
---|---|---|
16 | 8 | |
2,083 | 1,283 | |
- | 6.4% | |
1.2 | 9.6 | |
11 days ago | 1 day ago | |
C++ | C++ | |
MIT License | Apache License 2.0 |
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.
concurrencpp
-
Is anyone using coroutines seriously?
I am using concurrencpp for my project. What I like about it is that it's basically a thread pool factory with coroutines. It allows for better structuring / organizing of multithreaded work. So for me the main advantage of coroutines is that the code looks easier to follow
- Concurrencpp – a C++20 library for coroutines and executors
-
Comparing asio to unifex
Equivalent concurrencpp code:
-
Do you think the current asynchronous models (executors, senders) are too complicated and really we just need channels and coroutines running on a thread pool?
I agree. I use concurrencpp for the exact use case you described - coroutines running on simple-to-understand-executors which return some asynchronous pipe for communication.
- concurrencpp version 0.1.6 has been released!
-
What happens if you co_await a std::future, and why is it a bad idea? - The Old New Thing
If you look at concurrencpp, you can control exactly where and how coroutines are resumed, using executors.
-
Collecting the best C++ practices
concurrencpp. Modern concurrency for C++. Tasks, executors, timers and C++20 coroutines to rule them all.
-
C++ Coroutines from scratch - Phil Nash - Meeting C++ 2022
Just use a good third party library like concurrencpp .
-
Header-only C++14 quality thread pool
Hi, I am looking for a header-only C++14 (or lower) quality thread pool. Ideally, it would be similar to BS::thread_pool but in C++14. Most of them I find on GitHub are bloated (e.g. concurrencpp) or have many open Issues. Ideal usage would be similar to:
-
Good repos for beginners to browse that follow best modern C++ practices (including testing, static analysis etc...)
I use concurrencpp for my asynchronous code and the repo is written in modern cpp, with tests, sanitizers and what not.
stdexec
-
How to write networking code now that will be easiest to adapt to the upcoming standard?
I searched for more information, and here are some relevant links, in case anybody else is interested: * https://www.reddit.com/r/cpp/comments/zdogz9/new_c_sender_library_enables_portable_asynchrony/ * https://github.com/nvidia/stdexec * https://www.reddit.com/r/cpp/comments/10b76e3/stdexecution_from_the_metal_up_paul_bendixen/ * https://www.reddit.com/r/cpp/comments/st9bjm/p2300_senderreceiver_is_dead_in_the_water_for_c23/
- concurrencpp version 0.1.6 has been released!
-
Customization Function Objects - Status?
The last direct news about the status of P2547R1 that I'm aware of was with the Soursop and Ponies in Kona blogpost in November 22. r/cpp looks to not have discussed CPOs directly when the post was linked. Indirectly, this Github issue hints that there is a strong possibility of no language alternative available by C++26.
-
Are Boost.coroutine2 coroutines still relevant now we have c++20 coroutines ?
Coroutine task types and other awaitables are well supported by the P2300 std::execution proposal. Take a look at https://github.com/NVIDIA/stdexec Coroutines in general are good at suspension and resumption, but they need a place to run and something to resume them. That's what the sender/receiver framework provides.
-
STUDY Buddy - C++ | Accelerated Computing
Looking for a Study Partner (for SERIOUS learning), in the fields of Robotics | Accelerated Computing.I am studying Electrical Engineering (5 out of 7 semesters) and live in Germany. But yeah, College sucks and I mostly use online resources like NVIDIA's DLI, Coursera, edX, Educative and O'Reilly. [I really don't understand how these aren't the new Universities/Colleges. All I know I learned either from there or Youtube, Udemy or Books. College is actually what is slowing me down. It's such a waste of my time and resources. I asked ONE thing from them, and still, that was too much. They didn't do it.Anyway...I am currently going through/finally sorting out some Data Structures and Algorithms stuff (specially Graphs) and my plans/next goals are 1 - Go through C++'s P2300 Proposal and try to understand it along with NVIDIA's stdexec implementation, 2 - Take NVIDIA's CUDA C++ Course, 3 - Get started with Computer Vision [probably using NVIDIA again haha, along with OpenCV)
-
New C++ Sender Library Enables Portable Asynchrony
Libunifex inspired P2300, but the design of P2300 has evolved since then and libunifex has not kept pace. stdexec is a faithful and up-to-date implementation of P2300. It also adds GPU support and a small number of schedulers and utilities not in P2300.
-
P2300 (Sender/Receiver) is DEAD in the water for C++23 !!!
It is on Github, btw: https://github.com/brycelelbach/wg21_p2300_std_execution
-
Asynchronous Stacks and Scopes
I can't really argue that composing algorithms either using function call or pipe syntax is more readable than coroutines. I'll say this: right now P2300 is missing some discussion of how senders can be made trivially awaitable in a coroutine (and awaitables are senders by definition). If coroutines are your preferred syntax, sender/receiver is still a sound basis. Those parts of P2300 are currently under code review. You can find the PRs here.
What are some alternatives?
libunifex - Unified Executors
Boost.Asio - Asio C++ Library
asio-grpc - Asynchronous gRPC with Asio/unified executors
coroutine2 - Boost.Coroutine2
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.
PhotonLibOS - Probably the fastest coroutine lib in the world!
llfio - P1031 low level file i/o and filesystem library for the C++ standard
coost - A tiny boost library in C++11.
wg21_p2459_2022_january_library_evolution_poll_outcomes - Outcomes of the 2022 January C++ Library Evolution polls.
ue5coro - A gameplay-focused C++17/20 coroutine implementation for Unreal Engine 5.
papers - ISO/IEC JTC1 SC22 WG21 paper scheduling and management