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

  • 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.
  • 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.
  • Falcon - The minimalist REST and app backend framework for Python, with a focus on reliability, correctness, and performance at scale. Native ASGI support since version 3.0.
  • 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.
  • Guillotina - Full-featured ASGI-compatible REST application framework, designed for high performance and horizontally scaling solutions.
  • 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/).
  • 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.
  • 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.
  • 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.
  • Tonberry - Tonberry is an ASGI framework that takes a class based approach to routing. Influenced by CherryPy but made compatible with asyncio and WebSockets.
  • 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.)
  • 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.
  • Ariadne - A schema first Python library for implementing GraphQL servers.
  • Strawberry - A code first Python library for implementing GraphQL servers, inspired by dataclasses.
  • tartiflette-asgi - ASGI support for the Tartiflette GraphQL engine.
  • asgi-correlation-id - Request/Correlation ID logging middleware
  • 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.
  • Scout APM Starlette - Scout APM integration with Starlette and Starlette-based frameworks. (Shipped with `scout-apm`.)
  • Sentry ASGI - Sentry integration for ASGI frameworks. (Shipped with `sentry-sdk`.)
  • timing-asgi - ASGI middleware to record and emit timing metrics.
  • 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).
  • python-socketio - WebSocket clients and servers using Socket.IO. Includes an ASGI application wrapper.
  • Introduction to ASGI: Emergence of an Async Python Web Ecosystem - Florimond Manca.
  • ASGI 3.0
  • Embracing ASGI with Quart; Introducing Hypercorn
  • Hello ASGI
  • ASGI Documentation - Documentation site for the ASGI specification.
  • asgiref - ASGI reference implementation, including function wrappers, server base classes, type hints, and a WSGI-to-ASGI adapter.
  • Inside your Web framework: Intro to the ASGI spec, middleware and apps
  • An introduction to ASGI, Asynchronous Server Gateway Interface
  • Sketching out A Django redesign
  • Quart; an ASGI alternative to Flask
  • Taking Django Async
  • Future Pythonic Web: ASGI & Daphne
  • 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.
  • Quick and dirty mock service with Starlette
  • Working with ASGI and HTTP
  • Writing an ASGI web framework
  • asgi-csrf - ASGI middleware for protecting against CSRF attacks.
  • asgi-ratelimit - A customizable rate limiting ASGI middleware, with regex path matching support.
  • CORSMiddleware - Allow cross-origin requests from browsers. (Shipped with Starlette.)
  • 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.)
  • HTTPSRedirectMiddleware - Redirect HTTP/WS traffic to HTTPS/WSS. (Shipped with Starlette.)
  • RateLimitingMiddleware - Protect sensitive endpoints from brute force attacks. (Shipped with Piccolo API.)
  • TrustedHostMiddleware - Guard against host header attacks by validating the `Host` header of requests. (Shipped with Starlette.)
  • brotli-asgi - Response content compression using Brotli.
  • GZipMiddleware - Response content compression using GZip. (Shipped with Starlette.)
  • msgpack-asgi - Drop-in MessagePack support for ASGI apps and frameworks.
  • Mangum - AWS Lambda & API Gateway support for ASGI.
  • 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.
  • 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.
  • asgi-lifespan - Programmatic startup/shutdown of ASGI apps. Allows testing an ASGI app without having to spin up a server.
  • async-asgi-testclient - A framework-agnostic library for testing ASGI web applications.
  • HTTPX - Next generation HTTP client, including async support and ability to call ASGI apps directly.