A lightweight concurrency framework for C++11 inspired by Microsoft PPL, providing tasks, parallel algorithms, and schedulers.
Async++ is a lightweight concurrency framework for C++11 that provides task-based parallelism and parallel algorithms. It solves the problem of writing efficient parallel code in C++ by offering a clean API for creating, composing, and managing asynchronous tasks. The framework is inspired by Microsoft's Parallel Patterns Library and brings similar patterns to standard C++.
C++ developers building applications that require parallelism, concurrency, or asynchronous execution, particularly those working with C++11 or later who want task-based abstractions.
Developers choose Async++ because it provides a modern, composable approach to parallelism without heavyweight dependencies, with an API that feels natural in C++ and supports both task and data parallelism patterns.
Async++ concurrency framework for C++11
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Only requires the C++11 standard library, making it easy to integrate without heavy external dependencies, as emphasized in the README.
Features .then() continuations and when_all for intuitive dependency management between tasks, inspired by modern patterns like Microsoft PPL.
Includes parallel_for, parallel_reduce, and parallel_invoke for common data parallelism tasks, reducing boilerplate code for parallel operations.
Low-level scheduler API allows fine-tuning of task execution, useful for specialized use cases like integrating with custom thread pools.
Relies on C++11 features not fully implemented on all compilers, requiring workarounds on platforms like iOS, as noted in the README's supported platforms list.
Documentation is split into multiple wiki pages, which can be less accessible and harder to navigate compared to integrated or offline docs.
Compared to libraries like Boost or Intel TBB, Async++ has a smaller community and fewer updates, which might limit long-term support and third-party resources.
Async++ is an open-source alternative to the following products: