File: implementations.rst

package info (click to toggle)
python-asgiref 3.9.1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 428 kB
  • sloc: python: 2,635; makefile: 19
file content (208 lines) | stat: -rw-r--r-- 5,837 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
===============
Implementations
===============

Complete or upcoming implementations of ASGI - servers, frameworks, and other
useful pieces.

Servers
=======

Daphne
------

*Stable* / http://github.com/django/daphne

The current ASGI reference server, written in Twisted and maintained as part
of the Django Channels project. Supports HTTP/1, HTTP/2, and WebSockets.


Granian
-------

*Beta* / https://github.com/emmett-framework/granian

A Rust HTTP server for Python applications.
Supports ASGI/3, RSGI and WSGI interface applications.


Hypercorn
---------

*Beta* / https://pgjones.gitlab.io/hypercorn/index.html

An ASGI server based on the sans-io hyper, h11, h2, and wsproto libraries.
Supports HTTP/1, HTTP/2, and WebSockets.


NGINX Unit
----------

*Stable* / https://unit.nginx.org/configuration/#configuration-python

Unit is a lightweight and versatile open-source server that has three core capabilities: it is a web server for static media assets, an application server that runs code in multiple languages, and a reverse proxy.


Uvicorn
-------

*Stable* / https://www.uvicorn.org/

A fast ASGI server based on uvloop and httptools.
Supports HTTP/1 and WebSockets.


Application Frameworks
======================

BlackSheep
----------

*Stable* / https://github.com/Neoteroi/BlackSheep

BlackSheep is typed, fast, minimal web framework. It has performant HTTP client,
flexible dependency injection model, OpenID Connect integration, automatic
OpenAPI documentation, dedicated test client and excellent authentication and
authorization policy implementation. Supports HTTP and WebSockets.


Connexion
---------

*Stable* / https://github.com/spec-first/connexion

Connexion is a modern Python web framework that makes spec-first and API-first development
easy. You describe your API in an OpenAPI (or Swagger) specification with as much detail
as you want and Connexion will guarantee that it works as you specified.

You can use Connexion either standalone, or in combination with any ASGI or WSGI-compatible
framework!


Django/Channels
---------------

*Stable* / http://channels.readthedocs.io

Channels is the Django project to add asynchronous support to Django and is the
original driving force behind the ASGI project. Supports HTTP and WebSockets
with Django integration, and any protocol with ASGI-native code.


Esmerald
--------

*Stable* / https://esmerald.dev/

Esmerald is a modern, powerful, flexible, high performant web framework designed to build not only APIs but also full scalable applications from the smallest to enterprise level. Modular, elagant and pluggable at its core.


Falcon
------

*Stable* / https://falconframework.org/

Falcon is a no-magic web API and microservices framework, with a focus on
reliability, correctness, and performance at scale.
Supports both WSGI and ASGI, without any hard dependencies outside of the
standard library.


FastAPI
-------

*Beta* / https://github.com/tiangolo/fastapi

FastAPI is an ASGI web framework (made with Starlette) for building web APIs based on
standard Python type annotations and standards like OpenAPI, JSON Schema, and OAuth2.
Supports HTTP and WebSockets.


Flama
-----

*Stable* / https://github.com/vortico/flama

Flama is a data-science oriented framework to rapidly build modern and robust machine 
learning (ML) APIs. The main aim of the framework is to make ridiculously simple the 
deployment of ML APIs. With Flama, data scientists can now quickly turn their ML models 
into asynchronous, auto-documented APIs with just a single line of code. All in just few 
seconds!

Flama comes with an intuitive CLI, and provides an easy-to-learn philosophy to speed up 
the building of highly performant GraphQL, REST, and ML APIs. Besides, it comprises an 
ideal solution for the development of asynchronous and production-ready services, 
offering automatic deployment for ML models. 


Litestar
--------

*Stable* / https://litestar.dev/

Litestar is a powerful, performant, flexible and opinionated ASGI framework, offering
first class typing support and a full Pydantic integration. Effortlessly Build Performant
APIs.


Quart
-----

*Beta* / https://github.com/pgjones/quart

Quart is a Python ASGI web microframework. It is intended to provide the easiest
way to use asyncio functionality in a web context, especially with existing Flask apps.
Supports HTTP.


Sanic
-----

*Beta* / https://sanicframework.org

Sanic is an unopinionated and flexible web application server and framework that also
has the ability to operate as an ASGI compatible framework. Therefore, it can be run
using any of the ASGI web servers. Supports HTTP and WebSockets.


rpc.py
------

*Beta* / https://github.com/abersheeran/rpc.py

An easy-to-use and powerful RPC framework. RPC server base on WSGI & ASGI, client base
on ``httpx``. Supports synchronous functions, asynchronous functions, synchronous
generator functions, and asynchronous generator functions. Optional use of Type hint
for type conversion. Optional OpenAPI document generation.


Starlette
---------

*Beta* / https://github.com/encode/starlette

Starlette is a minimalist ASGI library for writing against basic but powerful
``Request`` and ``Response`` classes. Supports HTTP and WebSockets.


MicroPie
--------

*Beta* / https://patx.github.io/micropie

MicroPie is a fast, lightweight, modern Python web framework built on ASGI for 
asynchronous web applications. Designed for flexibility and simplicity, it 
enables high-concurrency web apps with built-in WebSockets, session management, 
middleware, and optional template rendering with method based routing.


Tools
=====

a2wsgi
------

*Stable* / https://github.com/abersheeran/a2wsgi

Convert WSGI application to ASGI application or ASGI application to WSGI application.
Pure Python. Only depend on the standard library.