Vcdiff or alternate binary difference format for Java
Is there an open source Java implementation of vcdiff binary differential format (decoder and encoder)?
There are xdelta and open vcdiff, but these are C libraries
Or, can other formats / algorithms be used to generate binary differences from Java?
Solution
You can use badiff to generate binary differences; The website is
http://badiff.org/
It can be used in the Maven center It is licensed by BSD and is friendly to OSS and business The algorithm used is the blocking version of the O (nd) difference described in this paper:
http://www.xmailserver.org/diff2.pdf
Diff format is not particularly compatible with anything else, but it makes some very good and very small differences
The library is fast; On my desktop computer, it can generate differences for two random 50MB input streams in 54 seconds I hope it's fast enough; I think this is quite impressive because it is a comparison of two token streams, each with 50 million tokens Badiff will utilize multiple CPU cores when calculating the difference
Disclaimer: I'm the author of badiff, so of course I think it's cool I am always open to suggestions; Things like being able to read / write "standard" binary differential formats sound like cool new features to be added in an upcoming release