This is a pure Python implementation of the [rsync algorithm] [TM96]. Updated to use SHA256 hashing (instead of the standard implementation which uses outdated MD5 hashes), and packages for disutils distribution by Isis Lovecruft, <isis@patternsinthevoid.net>. The majority of the code is blatantly stolen from Eric Pruitt’s code as posted on [ActiveState] [1]. [1]: https://code.activestate.com/recipes/577518-rsync-algorithm/ [TM96]: Andrew Tridgell and Paul Mackerras. The rsync algorithm. Technical Report TR-CS-96-05, Canberra 0200 ACT, Australia, 1996. https://samba.anu.edu.au/rsync/.
Returns a list of weak and strong hashes for each block of the defined size for the given data stream.
Generates a new weak checksum when supplied with the internal state of the checksum calculation for the previous window, the removed byte, and the added byte.
Generates a binary patch when supplied with the weak and strong hashes from an unpatched target and a readable stream for the up-to-date data. The blocksize must be the same as the value used to generate remotesignatures.
Generates a weak checksum from an iterable set of bytes.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.