C++ Coroutines

Open-source C++ projects categorized as Coroutines

Top 23 C++ Coroutine Projects

  • Swoole

    🚀 Coroutine-based concurrency library for PHP

    Project mention: Go with PHP (why it's still a good idea to use PHP in 2023) | reddit.com/r/PHP | 2023-05-11

    It's a management UI where concerns were raised that it downloads from third party server. However this issue was handled very fast and code was removed: https://github.com/swoole/swoole-src/issues/4434

  • cppcoro

    A library of C++ coroutine abstractions for the coroutines TS

    Project mention: Struggle with C++ 20 Coroutines | reddit.com/r/cpp_questions | 2023-05-13

    PS: Take a look at cppcoro; this might help as well, especially generator<>, if you're looking to generate numbers, and stuff;

  • InfluxDB

    Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.

  • userver

    The C++ Asynchronous Framework (beta)

    Project mention: REST APIs using C++. (Is this even done much?) | reddit.com/r/cpp | 2023-03-29

    I think userver (https://userver.tech/) is good way for you. 🐙 userver is the modern open source asynchronous framework with a rich set of abstractions for fast and comfortable creation of C++ microservices, services and utilities.

  • concurrencpp

    Modern concurrency for C++. Tasks, executors, timers and C++20 coroutines to rule them all

    Project mention: concurrencpp version 0.1.6 has been released! | reddit.com/r/cpp | 2023-03-21
  • async_simple

    Simple, light-weight and easy-to-use asynchronous components

    Project mention: Async/Await pattern in C++ | reddit.com/r/cpp_questions | 2022-07-19

    async_simple https://github.com/alibaba/async_simple

  • ext-openswoole

    Programmatic server for PHP with async IO, coroutines and fibers

    Project mention: [Blog] Unlocking the power of asynchronous PHP 💪 | reddit.com/r/platform_sh | 2023-05-24

    One such promising solution is Swoole, a high-performance networking framework that helps PHP applications handle server-side tasks more effectively.

  • libfiber

    The high performance coroutine library for Linux/FreeBSD/MacOS/Windows, supporting select/poll/epoll/kqueue/iocp/windows GUI (by iqiyi)

  • ONLYOFFICE

    ONLYOFFICE Docs — document collaboration in your environment. Powerful document editing and collaboration in your app or environment. Ultimate security, API and 30+ ready connectors, SaaS or on-premises

  • restc-cpp

    Modern C++ REST Client library

    Project mention: REST APIs using C++. (Is this even done much?) | reddit.com/r/cpp | 2023-03-29

    Restc-cpp: Client library using asio stackfull coroutines. It also handles serialization to and from Json automatically if the C++ classes are declared with boost::fusion.

  • libfork

    A bleeding-edge, lock-free, wait-free, continuation-stealing tasking library.

    Project mention: Libfork v2: A lock-free, wait-free, continuation-stealing tasking library built on C++20's coroutines | reddit.com/r/cpp | 2023-02-27
  • libcoro

    C++20 coroutine library

  • corobase

    Coroutine-Oriented Main-Memory Database Engine, VLDB 2021.

  • qcoro

    C++ Coroutines for Qt

    Project mention: Qt Creator 10 Released | news.ycombinator.com | 2023-03-29

    You're not completely wrong, but I think this overstating things by a lot. I'll grant you the containers for example, but you can generally use STL algorithms with them. And plenty of old ways of doing things have left modern Qt-based codebases and moved to more modern ways of doing things, including a fair amount of moc macro usage (and yes, you can remove the moc these days, but it has different perf characteristics - cf. the verdigris project).

    The community around Qt is pretty active at adopting modern C++, e.g. imho https://github.com/danvratil/qcoro is leading work.

  • Ichor

    C++20 Microservice Bootstrapping Framework

    Project mention: Ichor v0.2.0: C++ Framework for Event Loops, Dependency Injection and More | news.ycombinator.com | 2023-03-12
  • charly-vm

    Fully parallel dynamically typed programming language

  • coop

    C++20 coroutines-based cooperative multitasking library (by jeremyong)

  • packio

    An asynchronous msgpack-RPC and JSON-RPC library built on top of Boost.Asio.

    Project mention: Asio is great if you’re building a library/application with non-Asio API. But building Asio APIs using async compositions is too messy. Anybody else agree ? | reddit.com/r/cpp | 2022-12-23

    That's not even helpful, as you usually read/write using composed ops and they will interleave anyway. To have an io object that's capable of correctly pipelining multiple concurrent write- or read-operations, you need a custom strand like this: https://github.com/qchateau/packio/blob/master/include/packio/internal/manual_strand.h

  • CoFSM

    Finite State Machine using C++20 coroutines with symmetric transfer

    Project mention: A Finite State Machine library based on Coroutine Symmetric Transfer | reddit.com/r/u_Correct-Fee5630 | 2023-02-06
  • zab

    C++20 liburing backed coroutine executor and event loop framework.

  • coro

    Coroutine library and toolkit for C++20

  • Rstein.AsyncCpp

    The RStein.AsyncCpp library is a set of types that should be familiar for anyone who knows the Task Parallel Library (TPL) for .NET (C#).

  • asiochan

    Go-like channels for ASIO C++20 coroutines

  • rcoro

    Custom macro coroutines: copyable, serializable, and with reflection

    Project mention: Sane coroutine imitation with macros; copyable, serializable, and with reflection | reddit.com/r/cpp | 2023-01-22

    For future work ideas, I'd love to see this optimize well at -O1 and not only -O2.

  • smpp

    A C++ implementation of SMPP protocol on Boost.Asio (by ashtum)

    Project mention: An implementation of SMPP protocol on Boost.Asio | reddit.com/r/cpp | 2023-01-21

    Link to the repository: https://github.com/ashtum/smpp

  • CodiumAI

    TestGPT | Generating meaningful tests for busy devs. Get non-trivial tests (and trivial, too!) suggested right inside your IDE, so you can code smart, create more value, and stay confident when you push.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-05-24.

C++ Coroutines related posts

Index

What are some of the best open-source Coroutine projects in C++? This list will help you:

Project Stars
1 Swoole 17,859
2 cppcoro 2,810
3 userver 1,667
4 concurrencpp 1,493
5 async_simple 855
6 ext-openswoole 730
7 libfiber 675
8 restc-cpp 541
9 libfork 295
10 libcoro 231
11 corobase 204
12 qcoro 197
13 Ichor 112
14 charly-vm 91
15 coop 85
16 packio 84
17 CoFSM 62
18 zab 57
19 coro 34
20 Rstein.AsyncCpp 29
21 asiochan 25
22 rcoro 12
23 smpp 9
Write Clean C++ Code. Always.
Sonar helps you commit clean C++ code every time. With over 550 unique rules to find C++ bugs, code smells & vulnerabilities, Sonar finds the issues while you focus on the work.
www.sonarsource.com