Rust APIs for the LZ4 compression algorithm.
Add this to your Cargo.toml
:
toml
[dependencies]
lzzzz = "1.0.3"
Read
/ BufRead
/ Write
)```rust use lzzzz::{lz4, lz4_hc, lz4f};
let data = b"The quick brown fox jumps over the lazy dog.";
// LZ4 compression let mut comp = Vec::new(); lz4::compresstovec(data, &mut comp, lz4::ACCLEVELDEFAULT)?;
// LZ4HC compression let mut comp = Vec::new(); lz4hc::compresstovec(data, &mut comp, lz4hc::CLEVELDEFAULT)?;
// LZ4/LZ4_HC decompression let mut decomp = vec![0; data.len()]; lz4::decompress(&comp, &mut decomp)?;
// LZ4F compression let prefs = lz4f::Preferences::default(); let mut comp = Vec::new(); lz4f::compresstovec(data, &mut comp, &prefs)?;
// LZ4F decompression let mut decomp = Vec::new(); lz4f::decompresstovec(&comp, &mut decomp)?; ```
```rust use lzzzz::{lz4, lz4_hc};
let data = b"The quick brown fox jumps over the lazy dog.";
// LZ4 compression let mut comp = lz4::Compressor::new()?; let mut buf = Vec::new(); comp.nexttovec(data, &mut buf, lz4::ACCLEVELDEFAULT)?;
// LZ4HC compression let mut comp = lz4hc::Compressor::new()?; let mut buf = Vec::new(); comp.nexttovec(data, &mut buf)?;
// LZ4/LZ4_HC decompression let mut decomp = lz4::Decompressor::new()?; let result = decomp.next(&data, data.len())?; ```
```rust use lzzzz::lz4f::{WriteCompressor, ReadDecompressor, Preferences}; use std::{fs::File, io::prelude::*};
// LZ4F Write-based compression let mut f = File::create("foo.lz4")?; let mut w = WriteCompressor::new(&mut f, Preferences::default())?; w.write_all(b"Hello world!")?;
// LZ4F Read-based decompression let mut f = File::open("foo.lz4")?; let mut r = ReadDecompressor::new(&mut f)?; let mut buf = Vec::new(); r.readtoend(&mut buf)?; ```