Module compression

Module compression 

Source
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_streamzstd
Zstandard compression streaming utilities for high-performance HTTP response compression.

Structs§

CompressionBuilder
Builder for configuring HTTP response compression settings.
CompressionPlugin
HTTP response compression plugin for Tako applications.
Config
Configuration settings for HTTP response compression.

Enums§

CompressionResponse
Encoding
Supported HTTP compression encoding algorithms.

Functions§

compress_stream_middleware
Middleware function for streaming response compression.