Crates.io | lzma-rs-perf-exp |
lib.rs | lzma-rs-perf-exp |
version | 0.2.1 |
source | src |
created_at | 2022-08-09 23:14:53.596739 |
updated_at | 2022-08-09 23:14:53.596739 |
description | A codec for LZMA, LZMA2 and XZ written in pure Rust with performance experiments |
homepage | |
repository | https://github.com/SnowflakePowered/lzma-rs/tree/feature-perf-experiments |
max_upload_size | |
id | 642282 |
size | 133,524 |
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.
This fork provides some (API-unstable) performance experiments for use in chd-rs, which may gradually be upstreamed. The API is subject to change without a corresponding SemVer-compatible version bump.
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"
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!
Pull-requests are welcome, to improve the decoder, add better encoders, or more tests. Ultimately, this project should also implement .xz and .7z files.
MIT