I implemented rsync's binary diff/patch in .NET several years ago: https://github.com/zmj/rsync-delta
It's a decent protocol, but it has shortcomings. I'd expect most future use cases for that kind of thing to reach for a content-defined chunking algorithm tuned towards their common file formats and sizes.