11 releases

0.3.6 Oct 28, 2024
0.3.5 Sep 25, 2024
0.3.4 Jan 17, 2024
0.3.3 Dec 26, 2023
0.1.1 Dec 23, 2022

#57 in Compression

Download history 385637/week @ 2024-07-28 349885/week @ 2024-08-04 386989/week @ 2024-08-11 396917/week @ 2024-08-18 364499/week @ 2024-08-25 356473/week @ 2024-09-01 353033/week @ 2024-09-08 344289/week @ 2024-09-15 392427/week @ 2024-09-22 426362/week @ 2024-09-29 409323/week @ 2024-10-06 413344/week @ 2024-10-13 397600/week @ 2024-10-20 410259/week @ 2024-10-27 414417/week @ 2024-11-03 383475/week @ 2024-11-10

1,634,294 downloads per month
Used in 2,906 crates (2 directly)

MIT/Apache

85KB
1.5K SLoC

fdeflate

crates.io Documentation Build Status

A fast and safe deflate implementation for PNG.

This crate contains an optimized implementation of the deflate algorithm tuned for PNG images.

At least on PNG data, our decoder rivals the performance of zlib-ng and zlib-rs without using any unsafe code.

When compressing it makes a bunch of simplifying assumptions that drastically improve encoding speed while still being compatible with zlib:

  • 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.

Inspiration

The algorithms in this crate take inspiration from multiple sources:

Dependencies

~51KB