Pysync has both a demonstration implementation of the rsync and related algorithms in pure Python, and a high speed librsync Python extension. The pure Python is not fast and is not optimized, however it does work and provides a simple implementation of the algorithm for reference and experimentation. It includes a combination of ideas taken from librsync, xdelta, and rsync. The librsync Python extension is less flexible and harder to understand, but is very fast.
|Tags||Communications File Sharing education Archiving Compression Software Development Libraries Python Modules|
|Operating Systems||OS Independent|
Release Notes: Updated to use librsync 0.9.6. TODO and NEWS files have been added. Changed to use psyco if available, giving a 33% speedup. Changed to using a faster md4sum implementation based on the librsync implementation, and modified to use the RSA API. Rollin/rollout support has been added to historic adler32.py. There are minor cleanups to the rollsum code, and minor tweaks to the handling of block fragment matching.
Release Notes: This version adds a fast rollsum extension module, and changes pysync.py to use it, and the README docs were updated.
Release Notes: Be warned that the API and data format have been changed in ways that are not backwards compatible. A high speed librsync swig extension module was added. An MD4 extension module was added. The API was changed to be more like librsync/rdiff. distutils is now used to build releases for Linux and Windows.
Release Notes: This release includes support for xdelta style deltas (optimized deltas calculated directly from the sourcefile, not a signature), simplified and optimized code to take advantage of python buffer() copy-less string slicing, and command-line delta calculation now reads files incrementaly.
Release Notes: pysync.py was changed to use the new zlib-like API. A serious adler32 bug affecting rolling checksums was fixed. pysync-test.py was added for testing pysync.py.