#deflate #png #image #data #performance

fdeflate

Fast specialized deflate implementation

5 unstable releases

new 0.3.0 Mar 17, 2023
0.2.1 Dec 31, 2022
0.2.0 Dec 24, 2022
0.1.1 Dec 23, 2022
0.1.0 Dec 23, 2022

#167 in Compression

Download history 113/week @ 2022-12-18 218/week @ 2022-12-25 135/week @ 2023-01-01 90/week @ 2023-01-08 197/week @ 2023-01-15 54/week @ 2023-01-22 75/week @ 2023-01-29 89/week @ 2023-02-05 68/week @ 2023-02-12 27/week @ 2023-02-19 52/week @ 2023-02-26 65/week @ 2023-03-05 135/week @ 2023-03-12

281 downloads per month

MIT/Apache

115KB
2K SLoC

fdeflate

crates.io Documentation Build Status

A fast deflate implementation.

This crate contains an optimized implementation of the deflate algorithm tuned to compress PNG images. It is compatible with standard zlib, but make a bunch of simplifying assumptions that drastically improve encoding performance:

  • Exactly one block per deflate stream.
  • No distance codes except for run length encoding of zeros.
  • A single fixed huffman tree trained on a large corpus of PNG images.
  • All huffman codes are <= 12 bits.

It also contains a fast decompressor that supports arbitrary zlib streams but does especially well on streams that meet the above assumptions.

Inspiration

The algorithms in this crate take inspiration from multiple sources:

Dependencies

~51KB