Metadata-Version: 1.1
Name: pyrsync2
Version: 0.2.3
Summary: A Python 3 module which implements rsync binary diff
    algorithm.
Home-page: https://github.com/stormbreakerbg/pyrsync
Author: Georgy Angelov, Eric Pruitt, Isis Lovecruft
Author-email: georgyangelov@gmail.com
License: ['MIT']
Description: ===============================
        #pyrsync2
        ===============================
        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"
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Environment :: MacOS X
Classifier: Environment :: Win32 (MS Windows)
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Topic :: Security :: Cryptography
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Archiving
Classifier: Topic :: System :: Archiving :: Backup
Classifier: Topic :: System :: Archiving :: Compression
