April 14, 2007

zsync

I am doing some experiments with zsync:

zsync is a file transfer program. It allows you to download a file from a remote server, where you have a copy of an older version of the file on your computer already. zsync downloads only the new parts of the file. It uses the same algorithm as rsync. However, where rsync is designed for synchronising data from one computer to another within an organisation, zsync is designed for file distribution, with one file on a server to be distributed to thousands of downloaders. zsync requires no special server software — just a web server to host the files — and imposes no extra load on the server, making it ideal for large scale file distribution.

You can read a paper about it here.

The problem was, zsync binaries links the libraries with the algorithm statically. I hacked a cmake CMakeLists.txt to build zsync in a much nicer way, build shared libraries from it and install the includes. I created a package from it you can find in my build service home project. Went to bed at 4 am.