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-lz4feature): Extremely fast compression/decompression. Good for real-time applications where speed matters more than ratio. Decompression speed: ~4 GB/s. -
Zstd (
compression-zstdfeature): 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§
- Compression
Stats - Compression statistics.
Enums§
- Compression
- Compression algorithm selection.
Functions§
- compress
alloc - Compress data using the specified compression algorithm.
- compress_
with_ stats alloc - Compress data and return statistics.
- decompress
alloc - Decompress data that was compressed with
compress. - decompress_
or_ passthrough alloc - 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).