Available on crate feature
plugins only.Expand description
Compression plugin for automatic response compression. HTTP response compression plugin supporting multiple algorithms and streaming.
This module provides comprehensive HTTP response compression functionality for Tako applications. It supports multiple compression algorithms including Gzip, Brotli, DEFLATE, and optionally Zstandard, with configurable compression levels and streaming capabilities. The plugin automatically negotiates compression based on client Accept-Encoding headers and applies compression selectively based on content type, response size, and status code.
The compression plugin can be applied at both router-level (all routes) and route-level (specific routes), allowing different compression settings for different endpoints.
§Examples
use tako::plugins::compression::CompressionBuilder;
use tako::plugins::TakoPlugin;
use tako::router::Router;
use tako::Method;
async fn handler(_req: tako::types::Request) -> &'static str {
"Response data"
}
async fn api_handler(_req: tako::types::Request) -> &'static str {
"Large API response"
}
let mut router = Router::new();
// Router-level: Basic compression setup (applied to all routes)
let compression = CompressionBuilder::new()
.enable_gzip(true)
.enable_brotli(true)
.min_size(1024)
.build();
router.plugin(compression);
// Route-level: Advanced compression for specific API endpoint
let api_route = router.route(Method::GET, "/api/large-data", api_handler);
let advanced = CompressionBuilder::new()
.enable_gzip(true)
.gzip_level(9)
.enable_brotli(true)
.brotli_level(11)
.enable_stream(true)
.min_size(512)
.build();
api_route.plugin(advanced);Modules§
- brotli_
stream - Brotli compression streaming utilities for efficient HTTP response compression.
- deflate_
stream - DEFLATE compression streaming utilities for efficient HTTP response compression.
- gzip_
stream - Gzip compression streaming utilities for efficient HTTP response compression.
- zstd_
stream zstd - Zstandard compression streaming utilities for high-performance HTTP response compression.
Structs§
- Compression
Builder - Builder for configuring HTTP response compression settings.
- Compression
Plugin - HTTP response compression plugin for Tako applications.
- Config
- Configuration settings for HTTP response compression.
Enums§
- Compression
Response - Encoding
- Supported HTTP compression encoding algorithms.
Functions§
- compress_
stream_ middleware - Middleware function for streaming response compression.