Vue d'ensemble
Uvicorn 0.14, publié le 1er juin 2021, ajoute la configuration de la taille maximale des messages WebSocket et le support des flux asyncio pour le transport HTTP.
Fonctionnalités principales
Taille max WebSocket
Le paramètre --ws-max-size permet de limiter la taille des messages WebSocket reçus, protégeant le serveur contre les messages excessivement volumineux.
python
# Lancement avec limite WebSocket à 1 Mo
# uvicorn app:app --ws-max-size 1048576
import uvicorn
uvicorn.run(
'app:app',
ws_max_size=1_048_576, # 1 Mo
host='0.0.0.0',
port=8000,
)
Flux asyncio
Le transport HTTP peut utiliser les flux asyncio (asyncio.streams), offrant une alternative au transport bas niveau pour certains cas d'usage.
python
# Application ASGI minimale
async def app(scope, receive, send):
if scope['type'] == 'http':
await send({'type': 'http.response.start',
'status': 200,
'headers': [[b'content-type', b'text/plain']]})
await send({'type': 'http.response.body',
'body': b'Hello from Uvicorn 0.14'})
