Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
awesome-asgi
A curated list of awesome ASGI servers, frameworks, apps, libraries, and other resources
https://github.com/florimondmanca/awesome-asgi
Last synced: 1 day ago
JSON representation
-
Application frameworks
- Asgineer - A really thin ASGI web framework, which includes support for long polling, SSE and websockets.
- BlackSheep - BlackSheep is an asynchronous web framework to build event based web applications with Python. It is inspired by Flask, ASP.NET Core, and the work by Yury Selivanov.
- Guillotina - Full-featured ASGI-compatible REST application framework, designed for high performance and horizontally scaling solutions.
- 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.
- Tonberry - Tonberry is an ASGI framework that takes a class based approach to routing. Influenced by CherryPy but made compatible with asyncio 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.
- Django - The web framework for perfectionists with deadlines. Has native ASGI support since version 3.0.
- Litestar - A [high-performance](https://docs.litestar.dev/latest/benchmarks.html) ASGI framework, which offers [msgspec-based](https://github.com/jcrist/msgspec) message parsing, Depdency-Injection, Authentication, OpenAPI docs, and more. Supports HTTP and Websockets. Supports asyncio and trio.
- Pyotr - A server framework, as well as a client library, for serving and consuming OpenAPI-based Web services. Based on Starlette and [HTTPX](https://www.python-httpx.org/).
- Responder - A familiar HTTP Service Framework for Python, powered by Starlette.
- Starlette - The little ASGI framework that shines. Starlette is also an ASGI toolkit -- its modular design and reusable components made it foundational in the ASGI ecosystem. Supports HTTP and WebSockets. Supports asyncio and trio.
- FastHTML - Modern web applications in pure Python. Built on solid web foundations, not the latest fads. Powerful and expressive, fast and lightweight, compact code, easy to learn and use.
- Tremolo - Zero dependency ASGI server and web framework for Python. Request and response limits, bandwidth throttling, resumable downloads, multipart form uploads / streaming downloads, worker reloading. Only 2,500 lines with a focus on minimalism and stability.
- Sanic - Sanic is a Python 3.6+ web server and web framework that's written to go fast. It allows the usage of the async/await syntax added in Python 3.5, which makes your code non-blocking and speedy. Supports HTTP and WebSockets.
- 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.
-
Authentication
- asgi-auth-github - GitHub OAuth authentication for ASGI apps. Supports restricting to specific users or member of specific teams or organizations.
- SessionAuth - Authenticate using sessions and cookies. (Shipped with Piccolo API, and requires Piccolo ORM.)
- TokenAuth - Authenticate using tokens in request headers. (Shipped with Piccolo API, and requires Piccolo ORM.)
-
End-user applications
- ASGIWebDAV - An asynchronous WebDAV server implementation. Support multi-provider, multi-account and permission control.
- Datasette - A tool for exploring and publishing data, including ASGI-compatible components and plugins.
-
GraphQL
- Ariadne - A schema first Python library for implementing GraphQL servers.
- tartiflette-asgi - ASGI support for the Tartiflette GraphQL engine.
- Strawberry - A code first Python library for implementing GraphQL servers, inspired by dataclasses.
-
Monitoring
- asgi-correlation-id - Request/Correlation ID logging middleware
- timing-asgi - ASGI middleware to record and emit timing metrics.
- New Relic ASGI - New Relic integration for ASGI applications. (Shipped with `newrelic`.)
- opentelemetry-python - ASGI middleware and helpers for collecting application metrics via the (currently alpha) OpenTelemetry standard. Supports HTTP and WebSocket.
- Sentry ASGI - Sentry integration for ASGI frameworks. (Shipped with `sentry-sdk`.)
-
Proxies
- asgi-proxy-lib - An ASGI function for proxying to a backend over HTTP.
- asgiproxy
- 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).
-
Resources
-
Reference
- asgiref - ASGI reference implementation, including function wrappers, server base classes, type hints, and a WSGI-to-ASGI adapter.
-
Experiments and examples
- asgi-background - Background tasks for any ASGI framework.
- asgi-lifespan-middleware - ASGI middlewate to support ASGI lifespans using a simple async context manager interface.
- asgi-routing - A high performance router written in Rust for the ASGI ecosystem. Built on top of `routrie` and `path-tree`.
- nanoasgi - A tiny zero-dependency ASGI web framework.
- proxyx - Proof of concept for a lightweight HTTP/1.1 proxy service built with ASGI and HTTPX.
- py-frameworks-bench - A benchmark for (mostly-ASGI) Python async frameworks.
-
Talks
-
Publications
-
Tutorials
-
-
Security
-
Tutorials
- asgi-csrf - ASGI middleware for protecting against CSRF attacks.
- asgi-ratelimit - A customizable rate limiting ASGI middleware, with regex path matching support.
- CSPMiddleware - Tell browsers to only run Javascript from the same origin. (Shipped with Piccolo API.)
- CSRFMiddleware - Protect against CSRF attacks when using cookies for authentication. (Shipped with Piccolo API.)
- RateLimitingMiddleware - Protect sensitive endpoints from brute force attacks. (Shipped with Piccolo API.)
-
-
Serialization
-
Tutorials
- brotli-asgi - Response content compression using Brotli.
- msgpack-asgi - Drop-in MessagePack support for ASGI apps and frameworks.
- GZipMiddleware - Response content compression using GZip. (Shipped with Starlette.)
-
-
Real-time web
- python-socketio - WebSocket clients and servers using Socket.IO. Includes an ASGI application wrapper.
-
Servers
-
Tutorials
- 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.
- NGINX Unit - A universal web app server that supports ASGI.
- Uvicorn - A fast ASGI server based on uvloop and httptools. Supports HTTP/1 and WebSockets.
-
-
Serverless
-
Tutorials
- Mangum - AWS Lambda & API Gateway support for ASGI.
-
-
Utilities
- asgi-htmx - HTMX integration for ASGI applications.
Programming Languages
Categories
Sub Categories
Keywords
asgi
13
python
8
asyncio
4
asgi-middleware
3
http
3
web
2
graphql
2
framework
2
starlette
2
websocket
2
ariadne
1
apollo-python
1
apollo-graphql
1
api
1
webdav-server
1
webdav
1
docker-container
1
github-api
1
authentication
1
micro-framework
1
cherrypy
1
server
1
http-server
1
msgpack
1
middleware
1
messagepack
1
json
1
fastapi
1
asgi-ratelimit
1
csrf
1
proxy
1
httpx
1
tracing
1
sentry
1
request-id
1
logging
1
correlation-id
1
celery
1
async
1
graphql-server
1
graphql-python
1
django-graphql
1
django
1
blacksheep
1