lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


hi.

I've just added lua-rdiff to LuaForge; it's an easy to use binding to librsync 
(ver 0.9.7), using the rsync algorithm to create signatures, deltas and patch 
data.

it doesn't have any file or network code, it's only concern is data, either as 
Lua strings, or with source/sink functions.

it's not protocol-compatible with rsync, but there are some rdiff 
implementations that use librsync, and should be compatible with those.  the 
best known is rdiff-backup, i think.

what does it do?

to do some rsync-like file transfer:

on machine 1, you have data A
on machine 2, there's data B

A and B are similar but not identical; and you want to have data A on both 
machines.  instead of copying the whole data A from machine 1 to machine 2, 
you do this:

on machine 2, create a signature from data B, call it sig(B)
transfer sig(B) to machine 1

on machine 1, use sig(B) and data A to create a delta(A-B)
transfer delta(A-B) to mathine 2

on machine 2, patch data B with delta(A-B), the result is a copy of data A

lua-rdiff includes the functions rdiff.signature(), rdiff.delta() and 
rdiff.patch() to perform the whole process.

-- 
Javier

Attachment: pgpEu0pKs6ftn.pgp
Description: PGP signature