title: Looking for incremental backup algorithm
body: <p>I am looking for a solution for files and directories synchronization over WAN.</p>
  
  <p>It must:</p>
  
  <ol>
  <li>support Windows and Linux based OS</li>
  <li>support both textual and binary files</li>
  <li>be incremental</li>
  <li>resume broken transfers</li>
  <li>nice-to-have: support cascaded or distributed backups in order to prevent single point of failure problem.</li>
  </ol>
  
  <p>I have read about <a href="http://en.wikipedia.org/wiki/Rsync" rel="nofollow noreferrer">rsync</a> and its implementations. 
  However, the rsync could be relatively slow due to its file list parsing algorithm and also in case of binary files the "incremental" backup is a full backup in most cases which can cause heavy traffic. (I am aware of the fact that in the worst case there is no way to sync binary files incrementally but only by full backup like in case of backing up files that are compilation products).
  I have also checked several related questions here (the most useful was <a href="https://stackoverflow.com/a/4389966/579580">this</a> answer)  </p>
  
  <p>So, my question is: are there any (new?) useful algorithms/techniques/heuristics that can be applied in order to solve the task described above?</p>
  
  <p>Any tips would be appreciated.</p>