Skip to main content

Module compression

Module compression 

Source
Expand description

Compression algorithms for state backends

This module provides transparent compression and decompression for state backends, supporting multiple algorithms with configurable compression levels and thresholds.

§Supported Algorithms

  • LZ4: Fast compression with good compression ratio (default)
  • Snappy: Very fast compression, moderate compression ratio
  • Zstd: Best compression ratio, moderate speed
  • None: No compression (passthrough)

§Example

use processor::state::compression::{CompressionConfig, CompressionAlgorithm, compress, decompress};

let config = CompressionConfig::default()
    .with_algorithm(CompressionAlgorithm::Lz4)
    .with_level(4)
    .with_threshold(1024); // Only compress data > 1KB

let data = b"Hello, World!".repeat(100);

// Compress
let compressed = compress(&data, &config).unwrap();
println!("Original: {} bytes, Compressed: {} bytes", data.len(), compressed.len());

// Decompress
let decompressed = decompress(&compressed, &config).unwrap();
assert_eq!(data, decompressed);

Structs§

CompressionConfig
Compression configuration
CompressionStats
Compression statistics

Enums§

CompressionAlgorithm
Compression algorithm selection
CompressionError
Compression errors

Functions§

compress
Compress data according to the configuration
decompress
Decompress data that was compressed with compress()

Type Aliases§

CompressionResult