DotNetZip.Semverd icon indicating copy to clipboard operation
DotNetZip.Semverd copied to clipboard

Support rsyncable compression

Open schtritoff opened this issue 6 years ago • 0 comments

Hi,

Rsyncable compression support would be a nice feature, it is common in upstream zlib library (gzip / pigz). As far as I know, no other .NET compression library have this feature. Such compressed file is still completely compatible with deflate compression but has other benefits:

  • Ability to use rsync synchronization of large files over slow connection
  • Ability to make delta changes of compressed files
  • Deduplication for backup systems or filesystems supporting it (ReFS, BTRFS, etc)

There is a stackoverflow question about this issue and Mark Adler answered how to achieve this. Doesn't look like big change to ZipFile.cs and/or zlib implementation in this project but requires knowledge about current implementation. Here is the link: https://stackoverflow.com/questions/40764396/rsyncable-compression-library

References (only in C):

  • Windows PIGZ port: https://github.com/kjk/pigz
  • Upstream PIGZ rsyncable commit: https://github.com/madler/pigz/commit/1f4ddae80814088075482808ccdd1294fddbbc99 (this is initial commit, there are fixes for this code afterwards)

schtritoff avatar Jul 07 '17 09:07 schtritoff