Very brief comparison with rsync -- see also this comparison.
rsync can be used to copy a filesystem from
one host to another, or
for backups using rsync's --link-dest option plus a small wrapper
script
Backshift is only for backups, and works analogously to
rsync --link-dest, but it deduplicates variable-lengthed blocks of
the files both intra-host and inter-host, and compresses those
blocks using xz.
Specify files to backup with GNU or BSD find, EG "find / -xdev -print0 | backshift --backup", analogous to cpio
Extract files by running "backshift --produce-tar | tar xvfp -" (the tarball is assembled from deduplicated, compressed
chunks on the fly)
Perform remote restores by running "backshift --produce-tar | ssh user@example.org tar xvfp -".
Backshift is not just another tar frontend. Saved data
is stored in an open but created-for-the-purpose, highly compressed format
that can be assembled into a tar archive to stdout on request.