Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

awesome-asgi

A curated list of awesome ASGI servers, frameworks, apps, libraries, and other resources
https://github.com/florimondmanca/awesome-asgi

Last synced: 5 days 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.
    • 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.
    • 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.
    • 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.
  • 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

  • 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.
  • Testing

    • Tutorials

      • HTTPX - Next generation HTTP client, including async support and ability to call ASGI apps directly.