http://h34nug3iwqjf2376fmmzdhgqivckzemcujmarlptfqeqtq7vya47yyad.onion/2006/12/24/unison-decentralized-synchronization-of-files/index.html
Unison does not require a dedicated server, or root privilege, it is able to run using ssh, or a direct socket connection. Transfers are optimised using a version of the rsync protocol. Unison works by taking a footprint of the replicas at each synchronization, and using this footprint to find out which files changed between two synchronizations.