A Python module written in Rust that implements the zsync algorithm
Project description
pyzsync
A Python module written in Rust that implements the zsync algorithm.
Usage
Use the Python module as a script
# Show help.
python -m pyzsync --help
# Create a zsync file.
poetry run python -m pyzsync zsyncmake bigfile
# Compare two files and show how much data from the first file
# can be used to create the second file using the zsync algorithm.
python -m pyzsync compare bigfile1 bigfile2
# Download a file using zsync.
# This will automatically use blocks from the local files
# noble-desktop-amd64.iso and noble-desktop-amd64.iso.zsync-tmp-*
# if available.
python -m pyzsync zsync https://cdimage.ubuntu.com/daily-live/current/noble-desktop-amd64.iso.zsync
Use the Python module in a script
from pyzsync import create_zsync_file
create_zsync_file("bigfile", "bigfile.zsync")
See tests/test_pyzsync.py
and pyzsync/__main__.py
for more examples.
Build / Development
Based on PyO3
# Install toolchain (linux)
rustup toolchain install beta-x86_64-unknown-linux-gnu
# Build package in debug mode and install it to virtualenv
poetry install
poetry run maturin develop --release
# Run clippy
cargo clippy
# Run cargo test
cargo test --no-default-features
# Run pytest
poetry run pytest -vv
# Build release package
poetry run maturin build --release
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
pyzsync-1.3.1.tar.gz
(2.0 MB
view hashes)
Built Distributions
pyzsync-1.3.1-cp39-none-win_amd64.whl
(274.0 kB
view hashes)
Close
Hashes for pyzsync-1.3.1-cp312-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f55093cfdbf0108c42c3fe475d977153fe2f08b23515c9624eb8f8146eaf1ac3 |
|
MD5 | 942f6d1a3de4f3242e736e3512fe0516 |
|
BLAKE2b-256 | b811748d9f8d9af92ff8eff7f55d65136a409d5810b60ac771f7f4595e5cb572 |
Close
Hashes for pyzsync-1.3.1-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad104f23cdf509df062698f0e441767dac5e39b965d0c1fa323703c91c4321b5 |
|
MD5 | ecfb50484756a0f8ac081640f6dc76e2 |
|
BLAKE2b-256 | 742f7e52e600dd59f80eb0e3c482a3f775860cf0eeaca71eb360155f5a7a7553 |
Close
Hashes for pyzsync-1.3.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4575f8aa7ec11418f2da9d54fbc578c31c7575718ea330595f60a24efa758c4d |
|
MD5 | d78dac4e8ad416f4c8249cb424f7d154 |
|
BLAKE2b-256 | 1f0f980797f3d4bc5da202d7a99f0cca688a01df584891a5cb3a3af7cc75bc79 |
Close
Hashes for pyzsync-1.3.1-cp311-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a4f17b5e27247a20eb5afd9f204a2a3f23839f3ac1f083046c7e7f9568b775c |
|
MD5 | 6416e77bdcbd3f781905e2df7557a4c8 |
|
BLAKE2b-256 | fafafb7f37316da85bfe1cdbe187efb158d9c9167fc2193ccd98a034633dbe99 |
Close
Hashes for pyzsync-1.3.1-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9b54a150d208ae25dc6fc6659a579b43000b7ebb4336affb3741b23963ecd1b2 |
|
MD5 | 6ca5edfa75e62a7619bfce6ffd09785d |
|
BLAKE2b-256 | 747290bdc89af6df12d76f28f1487d32cecb6ec4d5a727c1a804850ca53e29f9 |
Close
Hashes for pyzsync-1.3.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 418b97e8f2898e5873615d11e8fb125a82e0c49ebe873fe7aa4596add5334ce5 |
|
MD5 | d4ed06f55d67ca0188450fb0285fe8c8 |
|
BLAKE2b-256 | c14b63cfd0fd29fdbc7258d39d33f97af35671d1022cffeb4e739e8525ab2978 |
Close
Hashes for pyzsync-1.3.1-cp310-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b46ab270e79cc8699772c43022787d4101a955a650b9b65d9ba2b5afea0cbe6b |
|
MD5 | ff7876ccafcbcfc950cf752f25d167dd |
|
BLAKE2b-256 | 2a9bebc950a87c19ed062499bbeb805816514045ad1b5f6b4ac051380b4f0c23 |
Close
Hashes for pyzsync-1.3.1-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc5adc0a4b83036d472783cef457e49d067c42f59e6ea2860986e4d1c374dd7e |
|
MD5 | d8463055041799fe5c3fac3cb65772d5 |
|
BLAKE2b-256 | 13e85bb66d3f7b3dcbe7ca4a9c21fb4a77ddf8e6ecad0d50eaeddc510f4e98ee |
Close
Hashes for pyzsync-1.3.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 13f7e62aa13d5c57a542bc2197674d07e886a07ee075e92eecf0115a2b98e081 |
|
MD5 | 93596f9cb95ef26c314fd505013fb27a |
|
BLAKE2b-256 | 78d201ed8d3ef1ea48d9a0ac75ad8f28edfbd47fe194f5de5cb5542d5e098c3f |
Close
Hashes for pyzsync-1.3.1-cp39-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5165cb5666519d446bf3c4da9fa8c121f039beeff77565c26910c17e405a053e |
|
MD5 | f36b4ecd505c57c89014f3a8717db946 |
|
BLAKE2b-256 | 1bb8a4c45d8112e4a12e0aa4dd919d4e6de76acf4bda035d64bd9fba9e1c4427 |
Close
Hashes for pyzsync-1.3.1-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a0afb54f8d1d6641950516454249e295a8c9c18286438c28e3248c80621f1b0 |
|
MD5 | b6e3247d4093b4c211e3979b3267a9d7 |
|
BLAKE2b-256 | 4bd0901e6a25683a6aea607d9efe8fab5886c06b41d1eb1c64315aa80a08749e |
Close
Hashes for pyzsync-1.3.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34289420535a6515ae62b159af43a27cc537d8719634e6fa652021bf3a7d3259 |
|
MD5 | 52cf806258fbd8525b92cf7bd990d961 |
|
BLAKE2b-256 | ca35329fda511f1602e5b0aea688c366de748f2b925f20f4137de5cf132cb704 |