Python Asyncio

Open-source Python projects categorized as Asyncio

Top 23 Python Asyncio Projects

  • GitHub repo Home Assistant

    :house_with_garden: Open source home automation that puts local control and privacy first

    Project mention: Google Nest Development | Playing Music At a Particular Time | reddit.com/r/homeautomation | 2021-06-15

    Nope, this: https://www.home-assistant.io/

  • GitHub repo fastapi

    FastAPI framework, high performance, easy to learn, fast to code, ready for production

    Project mention: Learn Flask or Django? | reddit.com/r/learnpython | 2021-06-15
  • GitHub repo sanic

    Async Python 3.7+ web server/framework | Build fast. Run fast.

    Project mention: Ask HN: What novel tools are you using to write web sites/apps? | news.ycombinator.com | 2021-04-04
  • GitHub repo http client/server for asyncio

    Asynchronous HTTP client/server framework for asyncio and Python

    Project mention: Error on request API endpoint from betsapi.com | reddit.com/r/learnpython | 2021-05-20

    I googled much better and found this: https://github.com/aio-libs/aiohttp/issues/3203

  • GitHub repo uvloop

    Ultra fast asyncio event loop.

    Project mention: Python Concurrency: The Tricky Bits | news.ycombinator.com | 2021-02-18
  • GitHub repo httpx

    A next generation HTTP client for Python. 🦋

    Project mention: aiohttp/httpx or requests ? | reddit.com/r/learnpython | 2021-06-03

    I struggle to understand what's the differences betweeb an async HTTP client like aiohttp or httpx and run_in_executor with the requests.

  • GitHub repo Faust

    Python Stream Processing

    Project mention: Wekelijkse /r/FreeDutch Discussiedraad | reddit.com/r/FreeDutch | 2021-01-28

    Vette IT ook. Tijdje open sollicitatie overwogen. Nerdgasm

  • GitHub repo gevent

    Coroutine-based concurrency library for Python

    Project mention: I have a problem with installing Ajenti on a 64bit Ubuntu 21.04 server | reddit.com/r/webdev | 2021-06-08

    Greenlet seems to have some troubles compiling with Python 3.9. https://github.com/gevent/gevent/issues/1627

  • GitHub repo asyncpg

    A fast PostgreSQL Database Client Library for Python/asyncio.

    Project mention: New major versions of Flask, Jinja, Click, and Werkzeug released! | reddit.com/r/Python | 2021-05-11

    What we get with the async part of this release - If you would like to run an async library or your own async code from a flask route you can do that now. This is super useful, where let's say we have some async code that fetches data from many sources concurrently, or call multiple a few ML prediction endpoints at the same time (as long as they don't time out) using httpx and respond with some sort of outcome, or finally try that cool new async-only database library. A current (v2) limitation is that the you can't make concurrent requests using just the current asyncio implementation (an alternative with Flask API and ASGI: Quart). Typically in production gunicorn or uwsgi + threads/processes/gevent-eventlet is used and this makes Flask behave asynchronously. More here and here if interested.

  • GitHub repo uvicorn

    The lightning-fast ASGI server. 🦄

    Project mention: Quick and dirty mock service with Starlette | dev.to | 2021-06-07

    Instead of a synchronous web server like Gunicorn or uWSGI, an asynchronous web server is required. I selected Uvicorn, a web server similar to Gunicorn that uses uvloop to handle the asynchronous event loop.

  • GitHub repo aiortc

    WebRTC and ORTC implementation for Python using asyncio

    Project mention: QUIC is now RFC 9000 | news.ycombinator.com | 2021-05-27

    I am sure there are even more implementations that I am not aware of.

    * https://github.com/pion/sctp

    * https://github.com/aiortc/aiortc/blob/main/src/aiortc/rtcsct...

    * https://source.chromium.org/chromium/chromium/src/+/main:thi...

    * https://github.com/sctplab/usrsctp

    People don't make these decisions for technical reasons only. Career wise it is a bad choice to spend your time working on pre-existing technologies. You don't become a distinguished engineer by iterating on existing technologies. You become one by being the creator of something new.

    I think QUIC is great and does a good job solving the problems it was designed to solve. It is disingenuous to pretend these decisions were made only for technical reasons.

  • GitHub repo python-socketio

    Python Socket.IO server and client

    Project mention: Can’t establish a connection to the server at localhost:6595 | reddit.com/r/deemix | 2020-12-21

    Solution here: https://github.com/miguelgrinberg/python-socketio/issues/578

  • GitHub repo databases

    Async database support for Python. 🗄

    Project mention: What's the point of asyncio if an event loop blocks on IO? | reddit.com/r/learnpython | 2021-05-09

    How about this?: https://github.com/encode/databases

  • GitHub repo GINO

    GINO Is Not ORM - a Python asyncio ORM on SQLAlchemy core.

  • GitHub repo tortoise-orm

    Familiar asyncio ORM for python, built with relations in mind

    Project mention: Tortoise-ORM: Familiar asyncio ORM for Python, built with relations in mind | news.ycombinator.com | 2021-04-28
  • GitHub repo aioredis

    asyncio (PEP 3156) Redis support

    Project mention: Tips using Redis with FastAPI | reddit.com/r/FastAPI | 2021-03-14

    I'm hoping to leverage Redis with my project, and I was curious as to if anyone had any general pointers as to how best to manage the DB connection. I'm using aioredis such that I can leverage the async functionality, but I haven't been very happy with the library's documentation surrounding how best to leverage the connection pool. Most of the examples create and tear down the pool immediately without showing how best to manage its lifespan.

  • GitHub repo aiogram

    Is a pretty simple and fully asynchronous framework for Telegram Bot API written in Python 3.7 with asyncio and aiohttp.

    Project mention: SendMediaGroup send Array of InputMediaPhoto & InputMediaVideo | reddit.com/r/TelegramBots | 2021-03-21

    I have never used python-telegram-bot (which looks like to be your case), but with aiogram, it's pretty easy to send mediafiles: https://github.com/aiogram/aiogram/blob/dev-2.x/examples/media_group.py (you can replace "attach_photo" with "attach video"). Note that the latest aiogram version 2.12 seems to be broken, so downgrade to 2.11.2.

  • GitHub repo aiofiles

    File support for asyncio

    Project mention: After months of learning, I finally was able to code a discord bot! | reddit.com/r/learnpython | 2021-01-09

    To solve this, you need an async version of function/library. hopefully, requests has a good async alternative- aiohttp. API structure is nearly identical to requests, so It won't be a big pain to migrate. for doing file I/O, there's aiofiles.

  • GitHub repo ib_insync

    Python sync/async framework for Interactive Brokers API

    Project mention: Client Portal API vs TWS / IBGateway API? | reddit.com/r/interactivebrokers | 2021-04-10

    The other option would be to use IBGateway. I also recall that there are utilities to manage login with IBGateway as well. The problem here is that I had a look at the IB python API and it seems awful. But perhaps ib_insync solves most of those issues? I did all this research a while back and seem to recall that ib_insync doesn't rely on the IB python code at all, right?

  • GitHub repo Dependency Injector

    Dependency injection framework for Python

    Project mention: Dependency Injection and Python | reddit.com/r/Python | 2021-03-21

    Dependency Injector

  • GitHub repo aiomultiprocess

    Take a modern Python codebase to the next level of performance.

    Project mention: Standalone electrical circuit simulation framework | reddit.com/r/Python | 2021-05-29

    Take a look at aiomultiprocess. It combines multiprocessing and asynchio to bypass the GIL for greatly increased performance.

  • GitHub repo strawberry

    A new GraphQL library for Python 🍓 (by strawberry-graphql)

    Project mention: Python graphql API's | reddit.com/r/graphql | 2021-04-25

    The library I’m working on (https://strawberry.rocks/) supports FastAPI (via ASGI), Flask and Django :)

  • GitHub repo fastapi-users

    Ready-to-use and customizable users management for FastAPI

    Project mention: OAuth2 examples for Deno | dev.to | 2021-03-10

    In the Python world, Flask and FastAPI are more performant, lighter frameworks. The FastAPI Users module looks like a good option for authentication.

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 2021-06-15.

Index

What are some of the best open-source Asyncio projects in Python? This list will help you:

Project Stars
1 Home Assistant 43,692
2 fastapi 32,017
3 sanic 15,049
4 http client/server for asyncio 11,293
5 uvloop 7,815
6 httpx 6,985
7 Faust 5,591
8 gevent 5,519
9 asyncpg 4,922
10 uvicorn 3,989
11 aiortc 2,427
12 python-socketio 2,378
13 databases 2,236
14 GINO 2,154
15 tortoise-orm 2,090
16 aioredis 1,764
17 aiogram 1,715
18 aiofiles 1,564
19 ib_insync 1,434
20 Dependency Injector 1,389
21 aiomultiprocess 1,171
22 strawberry 1,029
23 fastapi-users 909