Releases: sstadick/gzp
Releases · sstadick/gzp
Improved IO Error propogation
Single Thread Support
See changelog
Improved backend performance
See changelog
Single Stream Deflate
v0.5.0 is a large rework of gzp
on several fronts. Overall, gzp
now behaves more like pigz
.
- Single stream deflate encoding is used instead of Gzip blocks catted together. This means that both
Zlib
andRawDeflate
formats are now supported. - The last 32K of the previously encoded block (in sequential order) is used as the dictionary for the current block to compress. This improves overall compression and matches
pigz
- There is now a single "engine" that drives parallel compression for all formats, including
Snap
. To add a new format you simply need to implement theFormatSpec
trait.
Performance stayed about the same through all of this. On toy benchmark programs (examples/test2.rs
) gzp
appears to be about 30% faster than pigz
using equivalent compression levels, buffer sizes, and number of threads. This is very anecdotal and should be taken with many grains of salt.
Migration to Rayon
This release moves gzp
off of tokio and onto rayon as the backed threadpool. There was an error in the thread accounting the previous version that allowed tokio to spawn as many blocking threads as it liked making it look awesome in bechmarks. With that corrected there was no reason not to use rayon instead to slim down dependencies.