h3_request_streaming

Function h3_request_streaming 

Source
pub async fn h3_request_streaming(
    send_request: &mut SendRequest<OpenStreams, Bytes>,
    req: Request<Bytes>,
) -> Result<Response<Receiver<Result<Bytes, UpstreamBodyError>>>, H3Error>
Expand description

Send an HTTP/3 request over a QUIC stream and return a STREAMING response body (PERF-10, #243). The response headers are returned immediately; the body is forwarded through a tokio channel as h3 recv_data chunks arrive, matching the h1/h2 zero-buffer guarantee.

The driver task reads recv_data from the h3 stream and sends each chunk through the channel. The caller wraps the receiver in an UpstreamBody::from_h3_streaming to get a hyper::Body-compatible streaming body with the idle/deadline/health knobs.

send_request is taken by mutable reference because h3’s send_request requires &mut self; the caller clones it from the pool so the pooled connection itself is not borrowed.