What is Dropbox Sync Technology name [closed]

I remember Dropbox had (and still has, I think) a method for using less data when syncing files.
It compares the byte difference between the original file and the new version, and only uploads/downloads the changes (something like git).
I just can't remember the name of this technique! It was something like "byte diff" or "diff compare" ... 🤔 I tried searching their website and of course I Googled it at first, but no luck.

I want to research about it and implement a similar thing in my own App, but I don't know what to search.


The general term you're looking for is "delta" (as in, the difference between two values), or more specifically "delta compression" or "delta transfer".

The overall idea is not specific to Dropbox – various delta update methods are used in dozens of programs (e.g. Git, rsync, Windows Update, Debian's "apt update").

  • Some of those methods directly take both inputs (old and new) and produce some kind of "delta patch" that can later be applied to the old file to get the new one. Usually those methods can handle inserted/deleted data as well as straight-up changes, but it requires the sender to have both versions at the same time. (Examples: the 'bsdiff' and 'xdelta3' tools; Debian's "apt update" pdiffs; Git's "object/pack/*.pack" files.)

  • Other software use the term to mean methods which only determine which fixed-size pieces of a file have changed and download the necessary pieces. File sync programs often do this, as it doesn't require having both versions in the same place, instead the client and server interactively exchange lists of hashes. The downside is that they usually can't handle insertions/deletions. (Examples: Dropbox, Syncthing, various peer-to-peer programs which use Merkle hash trees such as BitTorrent or ed2k.)

Git uses both techniques in different contexts.