/minilz4

Minimal interface for the LZ4 compression library frame format

Primary LanguageRustBSD 2-Clause "Simplified" LicenseBSD-2-Clause

minilz4

Crates.io Docs.rs Tests & Checks

Minimal interface for the LZ4 compression library frame format.

Links to LZ4 1.9.4.

Usage

minilz4 provides Encoder and Decoder structs to encode and decode commpressed data in the LZ4 frame format, as well as Encode and Decode traits with convenience methods for Read and Write types.

Dependency

[dependencies]
minilz4 = "^0.6"

Examples

Simple

use minilz4::{Encode, EncoderBuilder, Decode};
use std::io::Cursor;

let data = "Blushing is the color of virtue.";

let encoded = Cursor::new(data).encode(&EncoderBuilder::new()).unwrap();
let decoded = Cursor::new(encoded).decode().unwrap();

Read & Write Traits

use minilz4::{EncoderBuilder, Decoder};
use std::io::{Cursor, copy};

let data = "Blushing is the color of virtue.";

let mut encoder = EncoderBuilder::new().build(Vec::new()).unwrap();
copy(&mut Cursor::new(data.as_bytes()), &mut encoder).unwrap();
let encoded = encoder.finish().unwrap();

let mut decoder = Decoder::new(Cursor::new(encoded)).unwrap();
let mut decoded = Vec::new();
decoder.read_to_end(&mut decoded).unwrap();