Skip to main content

This is a fork of the pyrsync package with some changes such as:

  • The functions blockchecksums and rsyncdelta are now generators which make it easier to send through the network

  • Some unittests are added

  • Implementation changes (uses bytearray instead of a deque, faster hash lookup etc.)

  • The block size is no longer in the delta itself, it needs to be passed to the patchstream function

  • Does not use try/except for programming logic

It’s a Python 3 only package!

pyrsync2 is a Python module which implements the [rsync algorithm] [1], written in pure Python. It is not a wrapper for rsync, but a set of functions which apply full rsync functionality through Python.

The majority of the code for this module is taken from [Eric Pruitt’s post at ActiveState] [2]. It was orginally licensed under an [MIT license] [3], and this license has been kept wthout modifications.

## Installation

You need to have PIP:

$ sudo pip install pyrsync2

## Use

An example use case for this module:

# On the system containing the file that needs to be patched >>> import pyrsync2 >>> unpatched = open(“unpatched.file”, “rb”) >>> hashes = pyrsync2.blockchecksums(unpatched)

# On the remote system after having received hashes >>> import pyrsync2 >>> patchedfile = open(“patched.file”, “rb”) >>> delta = pyrsync2.rsyncdelta(patchedfile, hashes)

# System with the unpatched file after receiving delta >>> unpatched.seek(0) >>> save_to = open(“locally-patched.file”, “wb”) >>> pyrsync2.patchstream(unpatched, save_to, delta)

[1]: http://samba.anu.edu.au/rsync/ “Andrew Tridgell and Paul Mackerras. The rsync algorithm. Technical Report TR-CS-96-05, Canberra 0200 ACT, Australia, 1996.” [2]: https://code.activestate.com/recipes/577518-rsync-algorithm/ “Rsync Algorithm (Python Recipe)” [3]: http://www.opensource.org/licenses/mit-license.php “OSI MIT License”

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyrsync2-0.2.6.zip (6.9 kB view details)

Uploaded Source

File details

Details for the file pyrsync2-0.2.6.zip.

File metadata

  • Download URL: pyrsync2-0.2.6.zip
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pyrsync2-0.2.6.zip
Algorithm Hash digest
SHA256 4660b700e7d785cb126853466c206304b7194c32cee120859a5683c2271ea243
MD5 ccf2a029cba9bbb808d33b7b53ff5a52
BLAKE2b-256 389028217b119819a76ecb7e8f09050a61a459a1df18e457d041ec43f4ec5a76

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.6 This release

1 file

0.2.5

1 file

0.2.4

1 file

0.2.3

1 file

0.2.2

1 file

0.2.1

1 file

0.2.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page