是否有VCDIFF二进制差异格式(解码器和编码器)的开源Java实现?
有xdelta和open-vcdiff,但这些都是C库.
或者,是否可以使用其他格式/算法从Java生成二进制文件的差异?
解决方法:
你可以使用badiff生成二进制差异;该网站是
它可以在maven中心使用.它是BSD许可的,对OSS和商业都很友好.使用的算法是本文中描述的O(ND)差异的分块版本:
http://www.xmailserver.org/diff2.pdf
diff格式与其他任何东西都不是特别兼容,但它会产生一些非常好的和非常小的差异.
图书馆很快;在我的桌面计算机上,它可以在54秒内为两个随机50MB输入流生成差异.希望这足够快;我认为这是相当令人印象深刻的,因为这是两个令牌流的比较,每个令牌流有5000万个令牌.在计算差异时,badiff将利用多个CPU核心.
免责声明:我是badiff的作者,所以当然我觉得它很酷.我总是乐于接受建议;诸如能够读/写“标准”二进制差异格式之类的东西听起来就像在即将发布的版本中添加的酷炫新功能.