Module hyper::body

source ·
Expand description

Streaming bodies for Requests and Responses

For both Clients and Servers, requests and responses use streaming bodies, instead of complete buffering. This allows applications to not use memory they don’t need, and allows exerting back-pressure on connections by only reading when asked.

There are two pieces to this in hyper:

  • The HttpBody trait describes all possible bodies. hyper allows any body type that implements HttpBody, allowing applications to have fine-grained control over their streaming.
  • The Body concrete type, which is an implementation of HttpBody, and returned by hyper as a “receive stream” (so, for server requests and client responses). It is also a decent default implementation if you don’t have very custom needs of your send streams.


  • A stream of Bytes, used when receiving bodies.
  • A cheaply cloneable and sliceable chunk of contiguous memory.
  • A sender half created through Body::channel().
  • A Body size hint


  • Read bytes from a buffer.
  • Trait representing a streaming body of a Request or Response.


  • Aggregate the data buffers from a body asynchronously.
  • Concatenate the buffers from a body into a single Bytes asynchronously.