http://linux.die.net/man/1/rdiff
install librsync ~0.9.7
or >=1.0.0
.
the sync api
// a new file contains "hello"
var a = "a.txt";
// a file contains "hello world"
var b = "b.txt";
// `a` wants to be `b`
rdiff.signatureSync (a, a + ".sig");
rdiff.deltaSync (a + ".sig", b, a + ".delta");
// the `a.patched` contains "hello world"
rdiff.patchSync (a, a + ".delta", a + ".patched");
do the same with async api
rdiff.signature(a, a + ".sig", function (err){
rdiff.delta(a + ".sig", b, a + ".delta", function(err){
rdiff.patch (a, a + ".delta", a + ".patched", function(err) {
// yeah! contents of `a` should equal contents of `a.patched`
});
})
});
it doesn't do file existence checking yet.
MIT