# Module hyper::body [−] [src]

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.

## Structs

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

## Traits

Buf | Read bytes from a buffer.
HttpBody | Trait representing a streaming body of a Request or Response.

## Functions

aggregate | Aggregate the data buffers from a body asynchronously.
to_bytes | Concatenate the buffers from a body into a single `Bytes` asynchronously.