#lz4 #decoder #decompression #ffi #wrapper #package-manager

sys tiny-lz4-decoder-sys

zero dependency, tiny lz4 decompression wrapper built for lodpm

1 stable release

1.0.1 Mar 18, 2023

#719 in Operating systems

Download history 8/week @ 2024-07-29 3/week @ 2024-09-23 12/week @ 2024-09-30

453 downloads per month

MIT license

320KB
5.5K SLoC

C 5.5K SLoC // 0.2% comments Rust 247 SLoC

Tiny lz4 decoding wrapper package built specifically for lod package manager and Unix systems. If you need complete box of lz4, consider using lz4.

Adding lib to the project

In your Cargo.toml:

[dependencies]
tiny-lz4-decoder-sys = "1.0"

In build.rs of your binary crate:

use std::{env, path::Path};

fn main() {
    let home_path = env::var("HOME").expect("HOME environment variable is not set.");
    let lz4_so = Path::new(&home_path).join(".local/share/tiny_lz4_decoder_sys");

    println!("cargo:rustc-link-arg=-Wl,-rpath={}", lz4_so.display());
}

Usage

Simple usage:

use std::fs::File;

use tiny_lz4_decoder_sys::Decoder;

fn main() {
    let input_file = File::open("compressed_lz4").unwrap();
    let mut decoder = Decoder::new(input_file).unwrap();
    let mut output_file = File::create("decompressed_output").unwrap();
    std::io::copy(&mut decoder, &mut output_file).unwrap();
}

License

This package is covered under the MIT license. See the LICENSE file for more info.

Dependencies