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§
- Compression
Config - Compression configuration
- Compression
Stats - Compression statistics
Enums§
- Compression
Algorithm - Compression algorithm selection
- Compression
Error - Compression errors
Functions§
- compress
- Compress data according to the configuration
- decompress
- Decompress data that was compressed with
compress()