你能推荐我任何Windows(最好是.NET)库,它允许压缩与rsync兼容的数据,即以gzip --rsyncable的方式运行。我发现zlib有一些请求更改,但似乎还没有实现。 我尝试使用一些并行压缩算法,认为它会在块上独立进行压缩,但没有运气(原始文件中的任何更改都会使压缩的文件完全更改)。
- >修改
我抓住了一个暴露ZLib同步模式的DotNetZip库,并将其用于4096的常量缓冲区和同步刷新模式,但即使输入文件中的一个小变化也会使输出文件完全不同。我能做错什么?
((a & 255) + (b & 255)) & 255
答案 0 :(得分:3)
您可以使用zlib,这已经提供了您所需要的一切。只需要经常插入Z_SYNC_FLUSH
次刷新,但不常见,由未压缩数据中的模式触发。
您可以查看pigz's implementation中的示例,使用输入数据的非常简单的哈希,查找12位模式。您可以使用13位代替,以减少压缩影响。见评论。