Sergey Konev
a8d83b9bab
Some checks failed
Continuous integration / Tests (push) Blocked by required conditions
Continuous integration / Tests (windows-latest) (push) Waiting to run
Continuous integration / Check clippy, formatting, and documentation (push) Failing after 20s
Continuous integration / Tests (ubuntu-latest) (push) Failing after 22s
Continuous integration / Check fuzzers (push) Failing after 18s
Continuous integration / Check mininum Rust version (push) Failing after 20s
|
||
---|---|---|
.. | ||
src | ||
.cargo-checksum.json | ||
Cargo.toml | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
README.md |
fdeflate
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: