Skip to main content

Crate oxiarc_deflate

Crate oxiarc_deflate 

Source
Expand description

§OxiArc Deflate

Pure Rust implementation of the DEFLATE compression algorithm (RFC 1951).

This crate provides compression and decompression of DEFLATE data, which is the basis for ZIP, GZIP, and PNG formats.

§Features

  • Decompression: Full support for all DEFLATE block types
    • Stored (uncompressed) blocks
    • Fixed Huffman codes
    • Dynamic Huffman codes
  • Compression: LZ77 + Huffman encoding
    • Multiple compression levels (0-9)
    • Fixed Huffman codes

§Example

use oxiarc_deflate::{deflate, inflate};

// Compress data
let original = b"Hello, World! Hello, World!";
let compressed = deflate(original, 6).unwrap();

// Decompress data
let decompressed = inflate(&compressed).unwrap();
assert_eq!(&decompressed, original);

§Compression Levels

  • Level 0: No compression (stored blocks)
  • Level 1-3: Fast compression
  • Level 4-6: Balanced (default is 6)
  • Level 7-9: Best compression (slower)

Re-exports§

pub use deflate::Deflater;
pub use deflate::MAX_DICTIONARY_SIZE;
pub use deflate::deflate;
pub use gzip::GzipDecoder;
pub use gzip::GzipEncoder;
pub use gzip::gzip_compress;
pub use gzip::gzip_decompress;
pub use huffman::HuffmanBuilder;
pub use huffman::HuffmanTree;
pub use inflate::Inflater;
pub use inflate::inflate;
pub use lz77::Lz77Encoder;
pub use lz77::Lz77Params;
pub use lz77::Lz77Preset;
pub use lz77::Lz77Token;
pub use optimal::OptimalParser;
pub use pool::DeflatePool;
pub use pool::PoolStats;
pub use streaming::GzipStreamDecoder;
pub use streaming::GzipStreamEncoder;
pub use streaming::ZlibStreamDecoder;
pub use streaming::ZlibStreamEncoder;
pub use zlib::Adler32;
pub use zlib::ZlibCompressor;
pub use zlib::ZlibDecompressor;
pub use zlib::zlib_compress;
pub use zlib::zlib_compress_with_dict;
pub use zlib::zlib_decompress;
pub use zlib::zlib_decompress_with_dict;
pub use zlib::zlib_requires_dictionary;

Modules§

deflate
DEFLATE compression.
gzip
Gzip wrapper module for DEFLATE compression.
huffman
Huffman coding for DEFLATE compression.
inflate
DEFLATE decompression (inflate).
lz77
LZ77 compression for DEFLATE.
optimal
Zopfli-style graph-based optimal DEFLATE parser.
pool
Thread-safe memory pool for DEFLATE buffer allocations.
streaming
Streaming compression and decompression for GZIP and Zlib formats.
tables
Fixed Huffman code tables for DEFLATE (RFC 1951).
zlib
Zlib format wrapper for DEFLATE compression.