A scalable C++ coroutine framework for highly parallelized CPU-bound and IO-bound workloads.
Quantum is a scalable C++ coroutine framework built on top of the Boost coroutine library, designed to dispatch and execute tasks concurrently using the reactor pattern. It solves the problem of writing efficient, high-performance concurrent applications by providing a multi-threaded coroutine dispatcher that handles both CPU-bound and IO-bound workloads with ease.
C++ developers building high-performance concurrent applications, such as servers, data processing pipelines, or real-time systems, who need fine-grained control over task execution and synchronization.
Developers choose Quantum for its header-only design, seamless integration with Boost, and powerful features like task continuations, parallel algorithms, and coroutine-friendly synchronization primitives, which simplify writing lock-free, highly parallelized code.
Powerful multi-threaded coroutine dispatcher and parallel execution engine
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
As a header-only library, Quantum eliminates compilation targets, making it easy to integrate with just include paths, as highlighted in the README.
Optimized for CPU-bound and IO tasks, it provides parallel execution engines and algorithms like forEach and mapReduce, enabling efficient data processing for scalable applications.
Supports coroutine continuations and chaining with synchronous and asynchronous dispatching, allowing complex workflow serialization, as demonstrated in the sample code with V2 API.
Uses fast pre-allocated memory pools for internal objects and coroutines, reducing allocation overhead and improving performance, a key feature listed in the documentation.
Relies entirely on Boost coroutines, adding significant library bloat and potential versioning headaches, which can complicate deployment in environments avoiding Boost.
Numerous CMake options and compiler flags, such as stack traits and allocator settings, require deep tuning and understanding, making setup more involved than simpler concurrency libraries.
Assumes familiarity with coroutines and the reactor pattern, with dense documentation and advanced features that may overwhelm developers new to concurrent programming paradigms.