Module compression

Module compression 

Source
Expand description

Content compression utilities for storage optimization.

This module provides transparent compression/decompression of content chunks to optimize storage usage while maintaining compatibility with the protocol.

§Features

  • Multiple compression algorithms (Zstd, LZ4, None)
  • Automatic algorithm selection based on content type
  • Compression ratio tracking and statistics
  • Configurable compression levels

§Example

use chie_core::compression::{Compressor, CompressionAlgorithm};

let mut compressor = Compressor::new(CompressionAlgorithm::Balanced);
let data = b"Hello, CHIE Protocol! ".repeat(100);

// Compress data
let compressed = compressor.compress(&data).unwrap();
println!("Compression ratio: {:.2}%",
    (1.0 - compressed.len() as f64 / data.len() as f64) * 100.0);

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

Structs§

CompressionStats
Compression statistics.
Compressor
Content compressor with configurable algorithm and statistics.

Enums§

CompressionAlgorithm
Compression algorithm options.
CompressionError
Compression error types.

Functions§

suggest_algorithm_for_content
Determine optimal compression algorithm for content type.