Vue d'ensemble
Uvicorn 0.35, publie le 28 juin 2025, introduit WebSocketsSansIOProtocol pour une gestion plus performante des WebSockets.
Fonctionnalites principales
WebSocketsSansIOProtocol
Le nouveau protocole sans I/O pour les WebSockets separe la logique du protocole des operations d'I/O, ameliorant les performances et la testabilite.
python
# Lancer avec le nouveau protocole WebSocket
# uvicorn app:app --ws wsproto
from starlette.applications import Starlette
from starlette.websockets import WebSocket
from starlette.routing import WebSocketRoute
async def ws(websocket: WebSocket):
await websocket.accept()
data = await websocket.receive_text()
await websocket.send_text(f'Echo: {data}')
app = Starlette(routes=[WebSocketRoute('/ws', ws)])
Ameliorations du serveur
Le serveur beneficie d'ameliorations de performance pour le traitement des connexions HTTP/1.1 et d'une meilleure gestion du graceful shutdown.
python
import uvicorn
async def app(scope, receive, send):
await send({'type': 'http.response.start',
'status': 200,
'headers': [[b'content-type', b'text/plain']]})
await send({'type': 'http.response.body',
'body': b'Hello Uvicorn 0.35'})
# uvicorn app:app --host 0.0.0.0 --port 8000
