8 breaking releases
Uses old Rust 2015
0.10.0 | Feb 28, 2016 |
---|---|
0.9.0 | Jun 7, 2015 |
0.8.0 | Jun 5, 2015 |
#23 in #en
54,230 downloads per month
Used in 398 crates
(7 directly)
23KB
582 lines
lzw
LZW en- and decoding
lib.rs
:
LZW decoder and encoder
This crates provides a LzwEncoder
and LzwDecoder
. The code words are written from
and to bit streams where it is possible to write either the most or least significant
bit first. The maximum possible code size is 16 bits. Both types rely on RAII to
produced correct results.
The de- and encoder expect the LZW stream to start with a clear code and end with an end code which are defined as follows:
CLEAR_CODE == 1 << min_code_size
END_CODE == CLEAR_CODE 1
Examplary use of the encoder:
use lzw::{LsbWriter, Encoder};
let size = 8;
let data = b"TOBEORNOTTOBEORTOBEORNOT";
let mut compressed = vec![];
{
let mut enc = Encoder::new(LsbWriter::new(&mut compressed), size).unwrap();
enc.encode_bytes(data).unwrap();
}