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 implementsHttpBody
, allowing applications to have fine-grained control over their streaming. - The
Body
concrete type, which is an implementation ofHttpBody
, 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.
Modules§
Structs§
- 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
Traits§
- Read bytes from a buffer.
- Trait representing a streaming body of a Request or Response.
Functions§
- Aggregate the data buffers from a body asynchronously.
- An optimization to try to take a full body if immediately available.
- Concatenate the buffers from a body into a single
Bytes
asynchronously.