Fast delta encoding using xdelta3
Project description
Fast delta encoding in python using xdelta3.
Requirements
Python 3.5 or 3.6 - it’s 2017, you should be using python 3.6 by now anyway.
linux - compilation only tested on ubuntu, might work on other platform.
Installation
pip install xdelta3
Usage
import xdelta3
value_one = b'wonderful string to demonstrate xdelta3, much of these two strings is the same.'
value_two = b'different string to demonstrate xdelta3, much of these two strings is the same.'
delta = xdelta3.encode(value_one, value_two)
# delta is an unreadable byte string: b'\xd6\xc3 ... \x01different\n\x13F\x00'
print(f'New string length: {len(value_two)}, delta length: {len(delta)}')
value_two_rebuilt = xdelta3.decode(value_one, delta)
if value_two_rebuilt == value_two:
print('Boo Ya! Delta encoding successful.')
(with xdelta3 installed this code should run “as is”, just copy it into ipython or a file and run)
How fast?
xdelta3-python is a thin wrapper around xdelta 3.1.1 which is a highly optimised c library for delta calculation and compression. It can encode a delta and decode it again for 5 small changes in a 5.5 million character string (the complete works of shakespeare) in around 10ms (or 30ms with the highest compression level). Boom. See performance.py.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file xdelta3-0.0.5.tar.gz
.
File metadata
- Download URL: xdelta3-0.0.5.tar.gz
- Upload date:
- Size: 122.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ea6ca56805466274bb2095cbd1ac7f908f00789b467b92fea4d4a282ccf003e |
|
MD5 | a7602b42b1772c052d64017c8944191f |
|
BLAKE2b-256 | 9a2e18a4011d94e3a557be8b632f7d73b6d5e06998638f90c45c131bdf8edeb2 |
File details
Details for the file xdelta3-0.0.5-cp36-cp36m-any.whl
.
File metadata
- Download URL: xdelta3-0.0.5-cp36-cp36m-any.whl
- Upload date:
- Size: 285.3 kB
- Tags: CPython 3.6m
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | affb4907cd71f3821115d67a71d0a72a5690213089a79c843fb34abf904ba396 |
|
MD5 | a113c710ccd398d28443892ac2eee005 |
|
BLAKE2b-256 | 3c0d65e3795bab2c0db17625ac5c968b51c1caed0e1d8e5c28dad704f9d939fc |