brecert / lzma-rs

An LZMA decoder written in pure Rust

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

lzma-rs

Crate Documentation Safety Dance Build Status Minimum Rust 1.62 Codecov Lines of Code Downloads (crates.io)

This project is a decoder for LZMA and its variants written in pure Rust, with focus on clarity. It already supports LZMA, LZMA2 and a subset of the .xz file format.

Usage

Decompress a .xz file.

let filename = "foo.xz";
let mut f = std::io::BufReader::new(std::fs::File::open(filename).unwrap());
// "decomp" can be anything that implements "std::io::Write"
let mut decomp: Vec<u8> = Vec::new();
lzma_rs::xz_decompress(&mut f, &mut decomp).unwrap();
// Decompressed content is now in "decomp"

Encoder

For now, there is also a dumb encoder that only uses byte literals, with many hard-coded constants for code simplicity. Better encoders are welcome!

Contributing

Pull-requests are welcome, to improve the decoder, add better encoders, or more tests. Ultimately, this project should also implement .xz and .7z files.

License

MIT

About

An LZMA decoder written in pure Rust

License:MIT License


Languages

Language:Rust 100.0%