DotNetZip.Semverd
DotNetZip.Semverd copied to clipboard
Support rsyncable compression
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)