Strawberry GraphQL @ 0.320.0
Released
This release adds support for GraphQL subscriptions over Server-Sent Events (SSE), following the GraphQL over SSE protocol in “distinct connections mode”.
SSE is opt-in. Enable it by including GRAPHQL_SSE_PROTOCOL in your
integration’s subscription_protocols :
from strawberry.asgi import GraphQL
from strawberry.subscriptions import (
GRAPHQL_SSE_PROTOCOL,
GRAPHQL_TRANSPORT_WS_PROTOCOL,
GRAPHQL_WS_PROTOCOL,
)
app = GraphQL(
schema,
subscription_protocols=[
GRAPHQL_TRANSPORT_WS_PROTOCOL,
GRAPHQL_WS_PROTOCOL,
GRAPHQL_SSE_PROTOCOL,
],
) Clients request a stream with Accept: text/event-stream . Queries, mutations,
subscriptions, and @defer /@stream are all supported on the async
streaming-capable integrations (ASGI, FastAPI, AIOHTTP, Litestar, Quart, Sanic,
async Django, and async Channels). See the
SSE subscriptions docs
for client setup, reconnection, and deployment notes (prefer HTTP/2).
Breaking change: multipart subscriptions are now opt-in. Streaming
transports are selected from subscription_protocols , so multipart
subscriptions — previously served for any Accept: multipart/mixed request —
now require MULTIPART_SUBSCRIPTION_PROTOCOL to be listed there explicitly.
This release was contributed by @patrick91 in https://github.com/strawberry-graphql/strawberry/pull/4466