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
- lz77 module