Crate armature_compression

Crate armature_compression 

Source
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 compression
  • full - 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:

  1. Brotli (br) - Best compression ratio, preferred for text content
  2. Zstd (zstd) - Fast compression with good ratios
  3. 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/json
  • application/javascript
  • application/xml
  • image/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§

CompressionConfig
Configuration for the compression middleware
CompressionConfigBuilder
Builder for CompressionConfig
CompressionMiddleware
HTTP response compression middleware

Enums§

CompressionAlgorithm
Supported compression algorithms
CompressionError
Errors that can occur during compression

Type Aliases§

Result
Result type for compression operations