Expand description
Minimal compression & decompression library for embedded use.
Implements the Heatshrink compression algorithm (LZSS-based). See https://github.com/atomicobject/heatshrink for the original C library.
§Parameters
Both the encoder and decoder are parameterised by const generics:
W: base-2 log of the LZSS sliding window size (4–14).L: number of bits for back-reference lengths (3 ≤ L < W).I: (decoder) streaming input buffer size in bytes (≥ 1).BUF: (encoder) total input buffer =2 << Wbytes. Must equal2 << W.WIN: (decoder) window buffer =1 << Wbytes. Must equal1 << W.
The BUF and WIN parameters are a workaround for the current Rust stable
limitation that prevents arithmetic expressions on const generics in array
sizes. They are always derived from W and are hidden behind type aliases.
§Convenience aliases
DefaultEncoder and DefaultDecoder use W=8, L=4, I=32, matching the
original C library. Prefer these unless you need custom parameters.
§Custom parameters example
use heatshrink::encoder::HeatshrinkEncoder;
use heatshrink::decoder::HeatshrinkDecoder;
// W=10, L=5: BUF = 2<<10 = 2048, WIN = 1<<10 = 1024
type MyEncoder = HeatshrinkEncoder<10, 5, 2048>;
type MyDecoder = HeatshrinkDecoder<10, 5, 64, 1024>;Modules§
Enums§
- Codec
Error - Error returned by the convenience functions
encoder::encodeanddecoder::decode. - Finish
- Outcome of a
encoder::HeatshrinkEncoder::finishordecoder::HeatshrinkDecoder::finishcall. - Poll
- Outcome of a successful
encoder::HeatshrinkEncoder::pollordecoder::HeatshrinkDecoder::pollcall. - Poll
Error - Error returned by
encoder::HeatshrinkEncoder::pollanddecoder::HeatshrinkDecoder::poll. - Sink
Error - Error returned by
encoder::HeatshrinkEncoder::sinkanddecoder::HeatshrinkDecoder::sink.
Constants§
- DEFAULT_
INPUT_ BUFFER_ SIZE - Default decoder input buffer size in bytes — matches the original C library.
- DEFAULT_
LOOKAHEAD_ BITS - Default lookahead size in bits — matches the original C library.
- DEFAULT_
WINDOW_ BITS - Default window size in bits — matches the original C library.
Type Aliases§
- Default
Decoder - Decoder using the original C library parameters (W=8, L=4, I=32).
- Default
Encoder - Encoder using the original C library parameters (W=8, L=4).