Skip to content
A curated list of awesome ASGI servers, frameworks, apps, libraries, and other resources
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update PULL_REQUEST_TEMPLATE.md Aug 11, 2019
.gitignore
CODE_OF_CONDUCT.md Add code of conduct Aug 4, 2019
CONTRIBUTING.md Add contributing guidelines and PR template Aug 4, 2019
LICENSE Add CC0 1.0 license Aug 4, 2019
README.md Add my talk at PyLondinium on ASGI (#8) Aug 11, 2019

README.md

awesome-asgi

Awesome Versioning

A curated list of awesome ASGI servers, frameworks, apps, libraries, and other resources.

This list should help you keep yourself up to date with the most awesome ASGI projects and resources. Watch releases on this repo to be notified about new entries. If you find anything missing, please contribute. ❣️

ASGI is a standard interface positioned as a spiritual successor to WSGI. It enables communication and interoperability across the whole Python async web stack: servers, applications, middleware, and individual components.

Born in 2016 to power the Django Channels project, ASGI and its ecosystem have been expanding ever since, boosted by the arrival of projects such as Starlette and Uvicorn in 2018.

Contents

Applications

Apps and projects that make use of the ASGI interface.

  • Datasette - A tool for exploring and publishing data, including ASGI-compatible components and plugins.

Application frameworks

Frameworks for building ASGI web applications.

  • Bocadillo - Fast, scalable and real-time capable web APIs for everyone. Powered by Starlette. Supports HTTP (incl. SSE) and WebSockets.
  • Channels - Asynchronous support for Django, and the original driving force behind the ASGI project. Supports HTTP and WebSockets with Django integration, and any protocol with ASGI-native code.
  • FastAPI - A modern, high-performance web framework for building APIs with Python 3.6+ based on standard Python type hints. Powered by Starlette and Pydantic. Supports HTTP and WebSockets.
  • Quart - A Python ASGI web microframework whose API is a superset of the Flask API. Supports HTTP (incl. SSE and HTTP/2 server push) and WebSockets.
  • Responder - A familiar HTTP Service Framework for Python, powered by Starlette. (ASGI 2.0 only, ed.)
  • Starlette - Starlette is a lightweight ASGI framework/toolkit, which is ideal for building high performance asyncio services. Supports HTTP and WebSockets.

Libraries

Libraries for use in ASGI apps.

  • Ariadne - A Python library for implementing GraphQL servers.
  • asgiref - ASGI reference implementation, including function wrappers, server base classes and a WSGI-to-ASGI adapter.
  • Bonnette - ASGI adapter for Azure Functions.
  • HTTPX - Next generation HTTP client, including async support and ability to call ASGI apps directly.
  • Mangum - AWS Lambda & API Gateway support for ASGI.
  • tartiflette-starlette - ASGI support for the Tartiflette GraphQL engine.

Middleware

General-purpose middleware to wrap around ASGI apps.

  • datasette-auth-github - GitHub OAuth authentication for ASGI apps. Supports restricting to specific users or member of specific teams or organizations.
  • ProxyHeadersMiddleware - Use X-Forwarded-Proto and X-Forwarded-For headers set by a known and trusted proxy to make client and scheme reference the connecting client (shipped with Uvicorn).
  • Sentry ASGI - Sentry integration for ASGI frameworks (part of sentry-sdk).
  • Starlette middleware - Middleware for CORS, HTTPS redirection, GZip compression, and more (shipped with Starlette).
  • timing-asgi - ASGI middleware to record and emit timing metrics.

Publications

Articles, talks and other contents about ASGI.

Articles:

Talks:

Servers

Web servers for ASGI applications.

  • Daphne - An HTTP, HTTP2 and WebSocket protocol server for ASGI, developed to power Django Channels.
  • Hypercorn - An ASGI server based on the sans-io hyper, h11, h2, and wsproto libraries. Supports HTTP/1, HTTP/2, WebSockets, ASGI 2.0 and ASGI 3.0. Compatible with asyncio, uvloop and trio worker types.
  • Uvicorn - A fast ASGI server based on uvloop and httptools. Supports HTTP/1 and WebSockets.
You can’t perform that action at this time.