Skip to main content

Crate heatshrink

Crate heatshrink 

Source
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 << W bytes. Must equal 2 << W.
  • WIN : (decoder) window buffer = 1 << W bytes. Must equal 1 << 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§

decoder
Module to decompress compressed data.
encoder
Module to compress data.

Enums§

CodecError
Error returned by the convenience functions encoder::encode and decoder::decode.
Finish
Outcome of a encoder::HeatshrinkEncoder::finish or decoder::HeatshrinkDecoder::finish call.
Poll
Outcome of a successful encoder::HeatshrinkEncoder::poll or decoder::HeatshrinkDecoder::poll call.
PollError
Error returned by encoder::HeatshrinkEncoder::poll and decoder::HeatshrinkDecoder::poll.
SinkError
Error returned by encoder::HeatshrinkEncoder::sink and decoder::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§

DefaultDecoder
Decoder using the original C library parameters (W=8, L=4, I=32).
DefaultEncoder
Encoder using the original C library parameters (W=8, L=4).