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:
HttpBodytrait describes all possible bodies. hyper allows any body type that implements
HttpBody, allowing applications to have fine-grained control over their streaming.
Bodyconcrete 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
A reference counted contiguous slice of memory.
A sender half created through
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