libdeflate
bitter
Our great sponsors
libdeflate | bitter | |
---|---|---|
7 | 4 | |
931 | 65 | |
- | - | |
8.8 | 6.9 | |
15 days ago | 6 days ago | |
C | Rust | |
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
bitter
-
bitter v0.6 - the performant bit reading library with a new faster API
bitter v0.6 is a pretty major change in the library as the API surface area is much slimmer and additional performance gains have been unlocked by allowing control of when the lookahead buffer is refilled to be passed downstream, so that one can take advantage of patterns in the data they are decoding.
-
GitHub - epage/string-benchmarks-rs: Comparison of Rust string types
What I've done for my crates (example #1) is take the csv that criterion generates and formulate better graphs using technologies designed for visualizations (like the R ecosystem).
-
Parsing Bitstreams with Rust and Nom
Updated the benchmark with your implementation! You can see the results here: https://github.com/nickbabcock/bitter#comparison-to-other-li...
What are some alternatives?
zlib-ng - zlib replacement with optimizations for "next generation" systems.
smartstring - Compact inlined strings for Rust.
ZLib - A massively spiffy yet delicately unobtrusive compression library.
rsip - SIP Rust library (generator & parser)
zlib - Cloudflare fork of zlib with massive performance improvements
deku - Declarative binary reading and writing: bit-level, symmetric, serialization/deserialization
zlib
zune-entropy - Incredibly Spicy Entropy coders
fpng - Super fast C++ .PNG writer/reader
string-rosetta-rs - Comparison of Rust string types
HexFiend - A fast and clever hex editor for macOS
miniz_oxide - Rust replacement for miniz