Skip to main content

Module compression

Module compression 

Source
Available on crate features compression-lz4 or compression-zstd or compression-zstd-pure only.
Expand description

Built-in compression support for oxicode.

This module provides transparent compression/decompression for serialized data. Compression can be applied globally or per-message.

§Supported Codecs

  • LZ4 (compression-lz4 feature): Extremely fast compression/decompression. Good for real-time applications where speed matters more than ratio. Decompression speed: ~4 GB/s.

  • Zstd (compression-zstd feature): Better compression ratio with still fast performance. Good for storage and network transmission.

§Example

use oxicode::compression::{Compression, compress, decompress};

let data = b"Hello, World! This is some data to compress.";

// Compress with LZ4 (default)
let compressed = compress(data, Compression::Lz4)?;

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

§Automatic Detection

Compressed data includes a magic header that allows automatic detection of the compression format. The decompress_auto function can detect and decompress any supported format.

Structs§

CompressionStats
Compression statistics.

Enums§

Compression
Compression algorithm selection.

Functions§

compressalloc
Compress data using the specified compression algorithm.
compress_with_statsalloc
Compress data and return statistics.
decompressalloc
Decompress data that was compressed with compress.
decompress_or_passthroughalloc
Try to decompress data, falling back to the original if not compressed.
detect_compression
Detect the compression type from compressed data.
is_compressed
Check if data appears to be compressed (has valid magic header).