Thanks to visit codestin.com
Credit goes to lib.rs

7 releases

0.3.0 Jan 4, 2023
0.2.0 May 2, 2021
0.1.4 May 2, 2021
0.1.3 May 5, 2020
0.1.0 Jan 7, 2018

#38 in Compression

Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App

565,023 downloads per month
Used in 165 crates (67 directly)

MIT license

125KB
3K SLoC

lzma-rs

Crate Documentation Safety Dance Build Status Minimum rust 1.50 Codecov

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

Dependencies

~0.2–3MB
~51K SLoC