Module compression

Module compression 

Source
Expand description

Compression support for block data

This module provides compression and decompression capabilities for block data, supporting multiple algorithms for different use cases.

§Supported Algorithms

  • None: No compression (passthrough)
  • Zstd: Zstandard compression (high ratio, good speed)
  • Lz4: LZ4 compression (very fast, moderate ratio)

§Example

use ipfrs_core::compression::{CompressionAlgorithm, compress, decompress};
use bytes::Bytes;

let data = Bytes::from_static(b"Hello, World! This is some data to compress.");
let level = 3;

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

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

Enums§

CompressionAlgorithm
Compression algorithms supported by ipfrs-core

Functions§

compress
Compress data using the specified algorithm and level
compression_ratio
Estimate compression ratio for given data
decompress
Decompress data using the specified algorithm