Expand description
HTTP Response Compression Middleware for Armature
This crate provides middleware for compressing HTTP responses using various compression algorithms including gzip, brotli, and zstd.
§Features
gzip- Enable gzip compression (enabled by default)brotli- Enable brotli compression (enabled by default)zstd- Enable zstd compressionfull- Enable all compression algorithms
§Example
use armature_compression::{CompressionMiddleware, CompressionConfig, CompressionAlgorithm};
// Create middleware with default settings (auto-select best algorithm)
let middleware = CompressionMiddleware::new();
// Or with specific configuration
let config = CompressionConfig::builder()
.algorithm(CompressionAlgorithm::Brotli)
.min_size(1024) // Only compress responses > 1KB
.level(6) // Compression level (1-9 for most algorithms)
.build();
let middleware = CompressionMiddleware::with_config(config);§Compression Algorithm Selection
When using CompressionAlgorithm::Auto, the middleware will select the best
compression algorithm based on the client’s Accept-Encoding header:
- Brotli (
br) - Best compression ratio, preferred for text content - Zstd (
zstd) - Fast compression with good ratios - Gzip (
gzip) - Most widely supported, good fallback
§Content Types
By default, the middleware compresses the following content types:
text/*(HTML, CSS, JavaScript, plain text, etc.)application/jsonapplication/javascriptapplication/xmlimage/svg+xml
Binary content types like images, videos, and already-compressed files are not compressed by default.
Re-exports§
pub use streaming::AsyncStreamingCompressor;pub use streaming::CompressionStats;pub use streaming::StreamingCompressor;pub use streaming::StreamingConfig;
Modules§
- streaming
- Streaming Compression - Compress chunks as they’re generated
Structs§
- Compression
Config - Configuration for the compression middleware
- Compression
Config Builder - Builder for CompressionConfig
- Compression
Middleware - HTTP response compression middleware
Enums§
- Compression
Algorithm - Supported compression algorithms
- Compression
Error - Errors that can occur during compression
Type Aliases§
- Result
- Result type for compression operations