zync
rsync over HTTP, with bsdiff residue reduction.
zync transfers a file by identifying the parts a local copy already holds and
fetching only what is missing, using a .zsync control file and plain HTTP
range requests. It reads and writes the zsync format, so it interoperates with
the C implementations rather than replacing them.
Key Features
- Compatibility: Reads and writes the standard
.zsyncformat, so control files are interchangeable with the reference implementations in both directions. - Residue reduction: An optional
.zdeltasidecar carries bsdiff patches for the regions a base file differs in, so a transfer pays for the difference rather than the whole region. - Small transfers: An insertion near the front of a file shifts everything behind it, and blocks are still found at their shifted offsets. Only the tail has to be transferred.
- Plain servers: Nothing is required of the origin but the target file and
working range requests. It need not know what a
.zsyncfile is. - Extensibility: Every remote read goes through a
Transporttrait, so an embedder can supply its own TLS roots, proxy policy, or scheme rules.
Installation
Install the binaries with Zoi:
zoi install @zillowe/zyncOr from Crates.io:
cargo install --locked zync-cliQuick Start
Add the library to your Cargo.toml:
[dependencies]
zync-rs = "0.1"use zync::{Assembly, ControlFile};Check out the Getting Started guide to learn how to use the library, or the CLI reference for the binaries.
2026 © All Rights Reserved.
- All the content is available under CC BY-SA 4.0, expect where otherwise stated.
- Source code is available on GitLab, licensed under Apache 2.0.
Last updated on
