uvloop VS cppcoro

Compare uvloop vs cppcoro and see what are their differences.

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
uvloop cppcoro
14 24
9,940 3,190
1.5% -
5.5 0.0
16 days ago 3 months ago
Cython C++
Apache License 2.0 MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

uvloop

Posts with mentions or reviews of uvloop. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-06.
  • APIs in Go with Huma 2.0
    6 projects | dev.to | 6 Dec 2023
    I wound up on a different team with pre-existing Python code so temporarily shelved my use of Go for a bit, and we used Sanic (an async Python framework built on top of the excellent uvloop & libuv that also powers Node.js) to build some APIs for live channel management & operations. We hand-wrote our OpenAPI and used it to generate documentation and a CLI, which was an improvement over what was there (or not) before. Other teams used the OpenAPI document to generate SDKs to interact with our service.
  • Python Is Easy. Go Is Simple. Simple = Easy
    5 projects | news.ycombinator.com | 27 Nov 2023
  • will requests-html library work as selenium
    5 projects | /r/Python | 13 Feb 2023
    If you're looking for maximum requests per second you can change the asyncio event loop with one like UVLoop.
  • A Look on Python Web Performance at the end of 2022
    10 projects | dev.to | 14 Nov 2022
    The source code from the project resides in the github, with more than 8.6k stars and 596 forks is a very popular github, but no new releases are made since 2018, looks pure much not maintained anymore, no PR's are accepted no Issues are closed, still without windows or macOS Silicon, or PyPy3 support. Japronto it self uses uvloop with more than 9k stars and 521 forks and different from japronto is seems to be well maintained.
  • Modern Python Performance Considerations
    8 projects | news.ycombinator.com | 5 May 2022
    If you are building server-side applications using Python 3 and async API and if you didn't use https://github.com/MagicStack/uvloop, you are missing out on performance big time.

    Also, if you happen to build microservices, don't forget to try PyPy, that's another easy performance booster (if it's compatible to your app).

  • SearX On Windows: A Short(ish) Tech Journey
    3 projects | /r/u_SyntaxAerror | 17 Apr 2022
    And so I did some searching, and found that SearX isn't officially supported on Windows. Not to be deterred, I did another quick search and found that with pip and/or docker, you should be able to install SearX straightforwardly on Windows. After trying this for a bit, I realized that uvloop, a (questionably optional dependency of SearX) is not supported on Windows. I tried a couple things to get it to work, but they didn't end up working for me either through user error, ignorance, or plain old not working.
  • EdgeDB 1.0
    16 projects | news.ycombinator.com | 10 Feb 2022
    they also wrote uvloop [0] which is fantastic and advances the cutting edge of what can be done with modern asyncio-based Python. I saw a ~3x improvement in the throughput of a microservice I wrote when I first tried it out years ago. currently at $dayjob we just use it by default in every Python service, whether or not we expect that service to be performance-critical.

    0: https://github.com/MagicStack/uvloop

  • How does asynchronous code work in programming languages?
    2 projects | /r/ProgrammingLanguages | 10 Jan 2022
    If you manage to grok how uvloop works as well as Python's default asyncio loop scheduler, you'll understand this style. It is not by itself a parallelism enabler, but network I/O the coroutines triggered would run in parallel nevertheless, though CPU bound computations would not by default.
  • Dev corrupts NPM libs 'colors' and 'faker' breaking thousands of apps
    4 projects | /r/webdev | 9 Jan 2022
    Take a look at these guys: https://github.com/MagicStack They are a consultancy that obviously can make good stuff, their libraries are widely used by the Python community. This is how I would monetize your library honestly. It is a source of trust that can unlock other opportunities that would be much harder to obtain without it.
  • C++20 coroutine benchmark result, using my coroutine library
    3 projects | /r/cpp | 3 Dec 2021
    Nice ! What about python with the free asyncio upgrade https://github.com/MagicStack/uvloop ?

cppcoro

Posts with mentions or reviews of cppcoro. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-13.
  • Struggle with C++ 20 Coroutines
    2 projects | /r/cpp_questions | 13 May 2023
    PS: Take a look at cppcoro; this might help as well, especially generator<>, if you're looking to generate numbers, and stuff;
  • Stop Comparing Rust to Old C++
    10 projects | /r/cpp | 31 Jan 2023
    Kind of sounds like whatever library you were using provided leaky abstractions. Something like cppcoro provides really good abstractions for coroutines, the user really doesn't need to understand why any of it works.
  • Sane coroutine imitation with macros; copyable, serializable, and with reflection
    4 projects | /r/cpp | 22 Jan 2023
    Is there a usecase for copying/serializing such coroutines? If not, I would use the normal C++20 coroutines (cppcoro?).
    4 projects | /r/cpp | 22 Jan 2023
    The goal wasn't as much to simplify C++20 coroutines (then one would build on top of them, e.g. see cppcoro), but to bring copyability and reflection to coroutines: hence a custom reimplementation.
  • My experience with C++ 20 coroutines
    7 projects | /r/cpp | 1 Aug 2022
  • My thoughts and dreams about a standard user-space I/O scheduler
    4 projects | /r/cpp | 28 Apr 2022
    Because the whole application is running under a single thread there is no need for atomic operations in synchronization primitives(which most of the time requires seq_cst memory order and CMPXCHG which is an expensive instruction in CPU). for example what async_mutex would look like if it knows it's running in a single-threaded scheduler (a non-atomic state variable and waiters queue).
  • [Discussion] What are some old C++ open source projects you wish were still active?
    10 projects | /r/cpp | 5 Apr 2022
    Maybe not old, but I wish cppcoro was still updated. It was such a nice start!
  • A high-level coroutine explanation
    2 projects | /r/cpp | 21 Jan 2022
    You can get generator<> from https://github.com/lewissbaker/cppcoro
  • C++ Coroutines Do Not Spark Joy
    6 projects | news.ycombinator.com | 1 Nov 2021
    It is possible to compose them more easily than described in the article; Lewis Baker's cppcoro library for example provides a recursive_generator<> type[0] that allows this without using any macros. It's up to the library part of coroutines to make things easy, end users are not expected to write low-level coroutine code themselves.

    I wonder about the allocation elision. Return value optimization became mandatory, and some compilers can already elide calls to new/delete and malloc()/free() in normal code, so perhaps it will be possible to guarantee allocation elision in the future in the most used cases.

    [0]: https://github.com/lewissbaker/cppcoro#recursive_generatort

    6 projects | news.ycombinator.com | 1 Nov 2021
    This article discusses things that are totally irrelevant to someone who will actually use coroutines, because they will use https://github.com/lewissbaker/cppcoro or wait for C++23 to give them the library support for coroutines, which will make usage simple, like the first code snippet from the article.

What are some alternatives?

When comparing uvloop and cppcoro you can also consider the following projects:

asyncio

trio - Trio – a friendly Python library for async concurrency and I/O

Twisted - Event-driven networking engine written in Python.

uvicorn - An ASGI web server, for Python. 🦄

asyncio - asyncio is a c++20 library to write concurrent code using the async/await syntax.

libunifex - Unified Executors

pyzmq - PyZMQ: Python bindings for zeromq

curio - Good Curio!

drogon - Drogon: A C++14/17/20 based HTTP web application framework running on Linux/macOS/Unix/Windows

Folly - An open-source C++ library developed and used at Facebook.

IVRE - Network recon framework. Build your own, self-hosted and fully-controlled alternatives to Shodan / ZoomEye / Censys and GreyNoise, run your Passive DNS service, collect and analyse network intelligence from your sensors, and much more! Uses Nmap, Masscan, Zeek, p0f, etc.

C-Coroutines - Coroutines for C.