Skip to main content

Module compression

Module compression 

Source
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 gzip feature)
  • zlib - Zlib compression (requires zlib feature)
  • zstd - Zstandard compression (requires zstd-compression feature)

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

CompressionRegistry
Registry that tracks which compression algorithms are available at runtime and which one is the default.
CompressionStats
Cumulative compression statistics.
Compressor
Compressor with configurable algorithm and level

Enums§

CompressionError
Compression error
CompressionType
Compression algorithm type.

Functions§

auto_decompress
Decompress data with auto-detection
detect_compression
Auto-detect compression type from data header

Type Aliases§

CompressionResult
Result type for compression operations