0

我正在寻找一个本机库或者可能是相对简单的算法来为最大 1GB 的文件创建和应用二进制补丁。这些是二进制数据库导出,不幸的是没有其他方法可以仅获取更改。补丁不需要非常小;更重要的是速度和空间效率(否bsdiff)。这些文件通常只有不到 1% 的变化,而我已经对 10 倍大的补丁感到满意。

当然,关于这个问题已经有很多问题了,但我目前最大的限制是我需要它是具有许可许可证的开源软件(没有 GPL 风格)。出于这个原因,即使我对它的特性非常满意xdelta3,也不是一个选择,也不是rdiff

我发现一种相当有效的方法是不导出,而是获取数据库文件本身并将其拆分为块。然后,只有不到 20% 的人在两个版本之间进行更改。不幸的是,备份必须与在线数据库一起进行,这将我与导出联系在一起。然后它不再那么好用了。

4

1 回答 1

0

HDiffPatch:https
://github.com/sisong/HDiffPatch MIT许可,可运行于:windows,macos,linux,android ...
支持大型二进制文件或目录之间的差异;
diff 和 patch 都支持使用限制内存运行;
创建补丁:hdiffz -s-1k -c-zlib old_path new_path out_delta_file
(-s 用于速度,-m 用于 deltaSize)
应用补丁:hpatchz old_path delta_file out_new_path

于 2020-06-25T07:29:56.693 回答