| Crates.io | http-response-compression |
| lib.rs | http-response-compression |
| version | 0.1.4 |
| created_at | 2025-12-15 15:00:29.177676+00 |
| updated_at | 2025-12-15 16:56:41.594752+00 |
| description | Tower middleware for compressing HTTP response bodies |
| homepage | |
| repository | https://github.com/bouk/http-response-compression |
| max_upload_size | |
| id | 1986218 |
| size | 62,722 |
A Tower middleware layer for compressing HTTP response bodies.
Accept-Encoding headeruse http_response_compression::CompressionLayer;
use tower::ServiceBuilder;
let service = ServiceBuilder::new()
.layer(CompressionLayer::new())
.service(my_service);
With custom minimum size:
let service = ServiceBuilder::new()
.layer(CompressionLayer::new().min_size(1024))
.service(my_service);
The middleware will not compress responses when:
Accept-Encoding is present in the requestContent-Encoding header is already setContent-Range header is present (range responses)Content-Type is image/* (except image/svg+xml)Content-Type is application/grpc (except application/grpc-web)Content-Length is below the minimum size thresholdThe middleware will always flush after each chunk when:
X-Accel-Buffering: no header is presentContent-Type is text/event-streamContent-Type is application/grpc-webWhen compression is applied:
Content-Encoding header is set to the codec usedContent-Length header is removed (compressed size is unknown)Accept-Ranges header is removedVary header includes Accept-EncodingMIT