sstadick / gzp

Multi-threaded Compression

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Please support generating a single gzip-compatible or deflate-compatible stream

joshtriplett opened this issue · comments

Currently, pargz uses many GzEncoder instances, which each emit a gzip header, so decoding it requires MultiGzDecoder. If pargz instead used DeflateEncoder to emit raw deflate streams, with an optional gzip or zlib header in front, the resulting stream would be a single gzip/zlib/deflate file, and wouldn't require MultiGzDecoder.

I'd love to be able to use pargz in file formats that expect raw deflate, or that expect zlib, or that expect gzip but don't handle multiple gzip headers.

commented

I'll look into this. 👍

Thanks for opening the issue!

commented

@ghuls RE this

@joshtriplett See linked PR on this ticket for details and the v0.5.0 release which addresses the following items:

  • Single stream deflate for Zlib, Gzip, and Raw Deflate
  • Uses last 32K of previous block as dictionary for current block

Not yet addressed:

  • A pure rust version of adler32 that has a combine method
  • passing lots of details to the gzip / zlib headers

Please feel to reopen this issue or make new ones if you run into problems or have ideas for improving things!

Thank you!