Expand description
Compression support for message bodies
This module provides compression and decompression utilities for Celery message bodies. Compression can significantly reduce message size for large payloads.
CompressionType is the single source of truth for compression
algorithms across the entire celers workspace. Broker crates
(celers-broker-redis, celers-broker-amqp, etc.) should reference
this type rather than defining their own enum variants.
§Supported Algorithms
- gzip - Standard gzip compression (requires
gzipfeature) - zlib - Zlib compression (requires
zlibfeature) - zstd - Zstandard compression (requires
zstd-compressionfeature)
§Example
ⓘ
use celers_protocol::compression::{Compressor, CompressionType};
let compressor = Compressor::new(CompressionType::Gzip);
let data = b"Hello, World!".repeat(100);
let compressed = compressor.compress(&data).unwrap();
let decompressed = compressor.decompress(&compressed).unwrap();
assert_eq!(data, decompressed);Structs§
- Compression
Registry - Registry that tracks which compression algorithms are available at runtime and which one is the default.
- Compression
Stats - Cumulative compression statistics.
- Compressor
- Compressor with configurable algorithm and level
Enums§
- Compression
Error - Compression error
- Compression
Type - Compression algorithm type.
Functions§
- auto_
decompress - Decompress data with auto-detection
- detect_
compression - Auto-detect compression type from data header
Type Aliases§
- Compression
Result - Result type for compression operations