Expand description
A Rust implementation of the LZ4BlockOutputStream format from lz4-java.
Beware: this format is not compatible with the standard LZ4 Block format. You should not use it if you unless you have to work with some historical data compressed using the Java code.
§Example
use lz4jb::{Lz4BlockInput, Lz4BlockOutput};
use std::io::{Read, Result, Write};
fn compress(d: &str) -> Result<Vec<u8>> {
let mut compressed = Vec::new();
Lz4BlockOutput::new(&mut compressed, 64)?.write_all(d.as_bytes())?;
Ok(compressed)
}
fn decompress(r: &mut dyn Read) -> Result<String> {
let mut decompressed = String::new();
Lz4BlockInput::new(r).read_to_string(&mut decompressed)?;
Ok(decompressed)
}
fn main() -> Result<()> {
// compress the string
let compressed = compress("Hello World!")?;
// decompress back into the original value
let decompressed = decompress(&mut compressed.as_slice())?;
println!("{}", decompressed);
Ok(())
}
Structs§
- Lz4Block
Input - Wrapper around a
Read
object to decompress data. - Lz4Block
Output - Wrapper around a
Write
object to compress data.