• Stars
    star
    4,607
  • Rank 9,213 (Top 0.2 %)
  • Language
  • License
    Other
  • Created about 8 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A curated list of awesome Python asyncio frameworks, libraries, software and resources

Awesome asyncio Awesome

A carefully curated list of awesome Python asyncio frameworks, libraries, software and resources.

The Python asyncio module introduced to the standard library with Python 3.4 provides infrastructure for writing single-threaded concurrent code using coroutines, multiplexing I/O access over sockets and other resources, running network clients and servers, and other related primitives.

Asyncio is not really a brand-new technology however it appears to be very trending since a few years - especially in the Python community and with the release of Python 3.4 in March 2014. Thus, it's pretty hard to keep yourself up-to-date with the most awesome packages out there. Find some of those awesome packages here and if you are missing one we count on you to create an Issue or a Pull Request with your suggestion.

Contents


Web Frameworks

Libraries to build web applications.

  • FastAPI - A very high performance Python 3.6+ API framework based on type hints. Powered by Starlette and Pydantic.
  • Django - An established, high-level Python web framework with a huge community and ecosystem.
  • Starlette - A lightweight ASGI framework/toolkit for building high performance services.
  • aiohttp - Http client/server for asyncio (PEP-3156).
  • sanic - Python 3.5+ web server that's written to go fast.
  • Quart - An asyncio web microframework with the same API as Flask.
  • autobahn - WebSocket and WAMP supporting asyncio and Twisted, for clients and servers.
  • websockets - A library for building WebSocket servers and clients in Python with a focus on correctness and simplicity.
  • Tornado - Performant web framework and asynchronous networking library.
  • uvicorn - The lightning-fast ASGI server.

Message Queues

Libraries to implement applications using message queues.

  • aioamqp - AMQP implementation using asyncio.
  • pyzmq - Python bindings for ZeroMQ.
  • aiozmq - Alternative Asyncio integration with ZeroMQ.
  • crossbar - Crossbar.io is a networking platform for distributed and microservice applications.
  • asyncio-nats - Client for the NATS messaging system.
  • aiokafka - Client for Apache Kafka.

Database Drivers

Libraries to connect to databases.

  • asyncpg - Fast PostgreSQL Database Client Library for Python/asyncio.
  • asyncpgsa - Asyncpg with sqlalchemy core support.
  • aiopg - Library for accessing a PostgreSQL database.
  • aiomysql - Library for accessing a MySQL database
  • aioodbc - Library for accessing a ODBC databases.
  • motor - The async Python driver for MongoDB.
  • redis-py - Redis Python Client (which includes aioreadis now).
  • aiocouchdb - CouchDB client built on top of aiohttp (asyncio).
  • aioinflux - InfluxDB client built on top of aiohttp.
  • aioes - Asyncio compatible driver for elasticsearch.
  • peewee-async - ORM implementation based on peewee and aiopg.
  • GINO - is a lightweight asynchronous Python ORM based on SQLAlchemy core, with asyncpg dialect.
  • Tortoise ORM - native multi-backend ORM with Django-like API and easy relations management.
  • Databases - Async database access for SQLAlchemy core, with support for PostgreSQL, MySQL, and SQLite.
  • Prisma Client Python - An auto-generated, fully type safe ORM powered by Pydantic and tailored specifically for your schema - supports SQLite, PostgreSQL, MySQL, MongoDB, MariaDB and more.
  • Piccolo - An ORM / query builder which can work in async and sync modes, with a nice admin GUI, and ASGI middleware.
  • Beanie - An async MongoDB ODM built on motor and Pydantic.

Networking

Libraries to communicate in your network.

  • AsyncSSH - Provides an asynchronous client and server implementation of the SSHv2 protocol.
  • aiodns - Simple DNS resolver for asyncio.
  • aioping - Fast asyncio implementation of ICMP (ping) protocol.
  • httpx - asynchronous HTTP client for Python 3 with requests compatible API.

GraphQL

Libraries to build GraphQL servers.

  • Ariadne - Schema-first Python library for implementing GraphQL servers.
  • Tartiflette - Schema-first Python 3.6+ GraphQL engine built on top of libgraphqlparser.
  • Strawberry - Code-first Python 3 GraphQL server with Django, Flask and FastAPI/Starlette support.

Testing

Libraries to test asyncio based applications.

  • aiomock - A python mock library that supports async methods.
  • asynctest - Enhance the standard unittest package with features for testing. asyncio libraries
  • pytest-asyncio - Pytest support for asyncio.
  • aresponses - Asyncio http mocking. Similar to the responses library used for requests.
  • aioresponses - Helper for mock/fake web requests in Python aiohttp package.

Alternative Loops

Alternative asyncio loop implementations.

  • uvloop - Ultra fast implementation of asyncio event loop on top of libuv.

Misc

Other awesome asyncio libraries.

  • aiochan - CSP-style concurrency with channels, select and multiprocessing on top of asyncio.
  • aiocache - Cache manager for different backends.
  • aiofiles - File support for asyncio.
  • aiopath - Asynchronous pathlib for asyncio.
  • aiodebug - A tiny library for monitoring and testing asyncio programs.
  • aiorun - A run() function that handles all the usual boilerplate for startup and graceful shutdown.
  • aiosc - Lightweight Open Sound Control implementation.
  • aioserial - A drop-in replacement of pySerial.
  • aiozipkin - Distributed tracing instrumentation for asyncio with zipkin
  • asgiref - Backend utils for ASGI to WSGI integration, includes sync_to_async and async_to_sync function wrappers.
  • async_property - Python decorator for async properties.
  • ruia - An async web scraping micro-framework based on asyncio.
  • kubernetes_asyncio - Asynchronous client library for Kubernetes.
  • aiomisc - Miscellaneous utils for asyncio.
  • taskiq - Asynchronous distributed task manager (like celery, but async).

Writings

Documentation, blog posts, and other awesome writing about asyncio.

Talks

Recordings of awesome talks about asyncio.

Alternatives to asyncio

Alternative approaches to async programming in Python, some of which attempt to support some compatibility with asyncio, others are not compatible at all.

  • curio - The coroutine concurrency library.
  • trio - Pythonic async I/O for humans and snake people.
    • trio-asyncio - re-implementation of the asyncio mainloop on top of Trio.
  • AnyIO - High level asynchronous concurrency and networking framework that works on top of either trio or asyncio.

More Repositories

1

try

Dead simple CLI tool to try Python packages - It's never been easier! 📦
Python
721
star
2

colorful

Terminal string styling done right, in Python 🐍 🎉
Python
523
star
3

w1thermsensor

A Python package and CLI tool to work with w1 temperature sensors like DS1822, DS18S20 & DS18B20 on the Raspberry Pi, Beagle Bone and other devices.
Python
485
star
4

russian-roulette

🍀 You want to push your luck? ... Go ahead and try your best with this CLI russian roulette! 💥
Shell
112
star
5

pandoc-plantuml-filter

Pandoc filter for PlantUML code blocks
Python
104
star
6

shellfuncs

Python API to execute shell functions as they would be Python functions
Python
101
star
7

observable

minimalist event system for Python
Python
86
star
8

WOL

C program to send wol magic packets
C
79
star
9

pandoc-mermaid-filter

Pandoc filter for mermaid code blocks
Python
76
star
10

devheart

Listen to Tux's heartbeat with this awesome Linux Kernel Module ❤️
C
57
star
11

git-russian-roulette

🍀 play russian roulette in your git repository. 🔫
Shell
44
star
12

minion-ci

minimalist, decentralized, flexible Continuous Integration Server for hackers.
Python
43
star
13

javascript-style-guide

Ein vernünftiger Ansatz für einen JavaScript-Style-Guide
35
star
14

securityheaders

🔒 CLI application to analyse Security Headers from a given URL using securityheaders.io
Python
19
star
15

musichaos

tool to tidy up your music chaos
Python
17
star
16

dropbox-cli

cli to manage your dropbox account
Python
10
star
17

ariseem

Minimalistic REST API for wake-on-lan
Python
10
star
18

leaked

Find leaked information in different kind of services
Python
9
star
19

retry-cmd

Retry commands on the command line without all the loops you always used!
Rust
9
star
20

confluo

➰ Minimalist scalable microservice framework for distributed systems using AMQP/RabbitMQ.
Python
9
star
21

ptipython-meta

Metapackage to install ptpython and ipython.
Python
7
star
22

idn-homograph-attack

Resources for "IDN Homograph Attack" for HSLU FKOM blog post testat
HTML
7
star
23

.vim

vim configuration for myself.
Vim Script
6
star
24

ramlient

Access to a RAML API done right, in Python. (Feasibility)
RAML
6
star
25

embedeval

NLP Embeddings Evaluation Tool
Python
5
star
26

avra-atmega2560

This repository is a clone of avra version 1.3.0 with additional fixes to support the ATmega2560 chip
C
5
star
27

dotfiles.attic

My personal dotfiles
Shell
4
star
28

broadcom-wl-monitormode

This is a source mirror for the broadcom wl driver version 6.30.223.141 with fixed monitor mode
C
4
star
29

hslu-pren-fs19

Implementation of the PREN FS2019 challenge at @ HSLU
Jupyter Notebook
4
star
30

saythanks-cli

Say Thanks via CLI. Uses @kennethreitz's great saythanks.io
Python
4
star
31

tag-expressions

Python implementation of Shunting-yard Algorithm to evaluate logical tag expressions
Python
3
star
32

dotfiles-2

Vim Script
3
star
33

hslu-pren-digit-cnn

Convolutional Neural Network to recognize digits used in the PREN class @ HSLU
Jupyter Notebook
3
star
34

python3.10-pattern-matching

Python 3.10 demos
Jupyter Notebook
3
star
35

pylemon

python daemon to monitor specific directories and react on changes
2
star
36

advent-of-code

My solutions for the Advent of Code puzzles
Python
2
star
37

java-dev

Java dev environment (Vagrant, Ansible, VirtualBox, Ubuntu 16.04) for HSLU
2
star
38

hslu-webtec-testat

HSLU WebTec Testat
JavaScript
2
star
39

pysingleton

module which provides a decorator to create thread-safe singleton classes
Python
2
star
40

lightning-talk-linux-kernel-module-examples

Examples for my "Linux Kernel Modules 101" Lightning Talk ⚡
C
2
star
41

timofurrer.github.io

Personal website and blog
HTML
2
star
42

edelweiss

edelweiss. A delightful color scheme for my personal terminal stack
Lua
2
star
43

asciitable

print formatted ascii table on console
C
1
star
44

hslu-roblab-behavior

Python
1
star
45

sudoku.vim

vim plugin to solve sudoku files
Python
1
star
46

coverage-importlib-test

Python
1
star
47

.tmux

my tmux configuration
1
star
48

clicore

small cli to use in python programs
Python
1
star
49

schoolcli

This is a very useful command line interface to manage your school marks
Python
1
star
50

hslu-xml-technologies

HSLU - XML Technologies - Projektarbeit
XSLT
1
star
51

hslu-ipcv

Exercises for the IPCV class @ HSLU
Jupyter Notebook
1
star
52

hslu-dbs

HSLU - DBS
TypeScript
1
star
53

hslu-aiso

HSLU AISO Class Exercises
Jupyter Notebook
1
star
54

dotfiles

Lua
1
star