Crate xpress_rs

source ·
Expand description

xpress_rs

xpess_rs is a Rust implementation of the Microsoft Xpress compression algorithm defined in MS-XCA

For the moment, only the LZ77 compression and decompression is implemented.

Examples

use xpress_rs::lz77::{LZ77Compressor,LZ77Decompressor};
use std::error::Error;



// data to compress
let data_to_compress: Vec<u8> = b"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.".to_vec();

// init the Compressor
let compressor = LZ77Compressor::new(data_to_compress);

// compress the data
let result: Result<Vec<u8>,Box<dyn Error>> = compressor.compress();

// check if the compression is successful
match result {
    Ok(compressed_data) => {
       // init the Decompressor
        let decompressor = LZ77Decompressor::new(compressed_data);

        // decompress the data
        let result: Result<Vec<u8>,Box<dyn Error>> = decompressor.decompress();

        // check if the decompression is successful
        match result {
            Ok(decompressed_data) => {
                println!("Decompressed data: {:?}",decompressed_data);
            }
            Err(e) => {
                println!("Error: {}",e);
            }
       }
    }
    Err(e) => {
        println!("Error: {}",e);
    }
}

Modules