I used to use rdiff-backup.
I have now fully switched to using a BTRFS filesystem and btrbk. Incremental, copy-on-write, any version immediately accessible without any 'recovery' process, transfers are extremely fast & small since there is no comparison process, the journal just needs to be run forward. It has both online and offline dedupe if you wanted it, but using COW reflinks or old school hard links probably makes more sense than block-level copies in the first place. Dedupe is more for VM storage, for example, where you can't alter the semantics but many machines will have identical blocks.