streaming#

class litestar.response.streaming.ASGIStreamingResponse#

Bases: ASGIResponse

A streaming response.

__init__(*, iterator: StreamType, background: BackgroundTask | BackgroundTasks | None = None, body: bytes | str = b'', content_length: int | None = None, cookies: Iterable[Cookie] | None = None, encoded_headers: Iterable[tuple[bytes, bytes]] | None = None, encoding: str = 'utf-8', headers: dict[str, Any] | None = None, is_head_response: bool = False, media_type: MediaType | str | None = None, status_code: int | None = None) None#

A low-level ASGI streaming response.

Parameters:
  • background – A background task or a list of background tasks to be executed after the response is sent.

  • body – encoded content to send in the response body.

  • content_length – The response content length.

  • cookies – The response cookies.

  • encoded_headers – The response headers.

  • encoding – The response encoding.

  • headers – The response headers.

  • is_head_response – A boolean indicating if the response is a HEAD response.

  • iterator – An async iterator or iterable.

  • media_type – The response media type.

  • status_code – The response status code.

async send_body(send: Send, receive: Receive) None#

Emit a stream of events correlating with the response body.

Parameters:
  • send – The ASGI send function.

  • receive – The ASGI receive function.

Returns:

None

class litestar.response.streaming.Stream#

Bases: Response[Union[Iterable[Union[str, bytes]], Iterator[Union[str, bytes]], AsyncIterable[Union[str, bytes]], AsyncIterator[Union[str, bytes]]]]

An HTTP response that streams the response data as a series of ASGI http.response.body events.

__init__(content: StreamType[str | bytes] | Callable[[], StreamType[str | bytes]], *, background: BackgroundTask | BackgroundTasks | None = None, cookies: ResponseCookies | None = None, encoding: str = 'utf-8', headers: ResponseHeaders | None = None, media_type: MediaType | OpenAPIMediaType | str | None = None, status_code: int | None = None) None#

Initialize the response.

Parameters:
  • content – A sync or async iterator or iterable.

  • background – A BackgroundTask instance or BackgroundTasks to execute after the response is finished. Defaults to None.

  • cookies – A list of Cookie instances to be set under the response Set-Cookie header.

  • encoding – The encoding to be used for the response headers.

  • headers – A string keyed dictionary of response headers. Header keys are insensitive.

  • media_type – A value for the response Content-Type header.

  • status_code – An HTTP status code.

to_asgi_response(app: Litestar | None, request: Request, *, background: BackgroundTask | BackgroundTasks | None = None, cookies: Iterable[Cookie] | None = None, encoded_headers: Iterable[tuple[bytes, bytes]] | None = None, headers: dict[str, str] | None = None, is_head_response: bool = False, media_type: MediaType | str | None = None, status_code: int | None = None, type_encoders: TypeEncodersMap | None = None) ASGIResponse#

Create an ASGIStreamingResponse from a StremaingResponse instance.

Parameters:
  • app – The Litestar application instance.

  • background – Background task(s) to be executed after the response is sent.

  • cookies – A list of cookies to be set on the response.

  • encoded_headers – A list of already encoded headers.

  • headers – Additional headers to be merged with the response headers. Response headers take precedence.

  • is_head_response – Whether the response is a HEAD response.

  • media_type – Media type for the response. If media_type is already set on the response, this is ignored.

  • request – The Request instance.

  • status_code – Status code for the response. If status_code is already set on the response, this is

  • type_encoders – A dictionary of type encoders to use for encoding the response content.

Returns:

An ASGIStreamingResponse instance.