Git Product home page Git Product logo

awesome-asgi's Introduction

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.

awesome-asgi's People

Contributors

florimondmanca avatar jordaneremieff avatar pgjones avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.