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§
- Compression
Algorithm - 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