libdeflate
miniz_oxide
Our great sponsors
libdeflate | miniz_oxide | |
---|---|---|
7 | 2 | |
931 | 159 | |
- | - | |
8.8 | 5.7 | |
15 days ago | 19 days ago | |
C | C | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
libdeflate
- Ebiggers/libdeflate: Heavily optimized DEFLATE/zlib/gzip library
-
Introducing zune-inflate: The fastest Rust implementation of gzip/Zlib/DEFLATE
zune-inflate is a port of libdeflate to safe Rust.
-
Quite OK Image is now my favorite asset format
> The QOI benchmarks shows it only lagging a small bit behind PNG in compression ratio, while performing much faster (multiples) in both encoding and decoding.
Presumably that’s with stock libpng, which uses zlib. I wonder if anyone tried patching it to use the substantially faster (on x86) libdeflate[1] instead? It doesn’t do streaming, but you shouldn’t really need it for PNG textures.
[1] https://github.com/ebiggers/libdeflate
-
bitter v0.6 - the performant bit reading library with a new faster API
Eric biggers libdeflate https://github.com/ebiggers/libdeflate/blob/master/lib/deflate_decompress.c
-
Computing Adler32 Checksums at 41 GB/s
Note that libdeflate has used essentially the same method since 2016 (https://github.com/ebiggers/libdeflate/blob/v0.4/lib/adler32...), though I recently switched it to use a slightly different method (https://github.com/ebiggers/libdeflate/blob/v1.12/lib/x86/ad...) that performs more consistently across different families of x86 CPUs.
-
Zlib – a spiffy yet delicately unobtrusive compression library
Going away from Zlib proper but staying with its format, there’s libdeflate[1], an implementation that’s substantially faster on modern machines but can’t stream, and of course Zopfli[2], a glacially slow compressor that’s somewhat better (and occasionally much more so).
[1] https://github.com/ebiggers/libdeflate
[2] https://github.com/google/zopfli
- Firefox's Optimized Zip Format: Reading Zip Files Quickly
miniz_oxide
-
bitter v0.6 - the performant bit reading library with a new faster API
There's quite a bit of unsafe (ick) and there's even an unsafe API that allow one to shoot themselves in the foot (more ick). I'm cautiously optimistic that the performance demonstrated by miniz_oxide (a project with lots of bit reading and zero unsafe) could mean a reduction of unsafe in bitter without sacrificing performance.
-
Good example of high performance Rust project without unsafe code?
miniz_oxide is slightly faster than zlib
What are some alternatives?
zlib-ng - zlib replacement with optimizations for "next generation" systems.
gearley - An Earley parser engine in Rust.
ZLib - A massively spiffy yet delicately unobtrusive compression library.
ttf-parser - A high-level, safe, zero-allocation TrueType font parser.
zlib - Cloudflare fork of zlib with massive performance improvements
cv - Rust CV mono-repo. Contains pure-Rust dependencies which attempt to encapsulate the capability of OpenCV, OpenMVG, and vSLAM frameworks in a cohesive set of APIs.
zlib
yaep - Yet Another Earley Parser
fpng - Super fast C++ .PNG writer/reader
bitter - Extract bits from a byte slice
HexFiend - A fast and clever hex editor for macOS
image-png - PNG decoding and encoding library in pure Rust