Skip to content

rje4242/awesome-asgi

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

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

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published