Zillowe FoundationZillowe Documentation

zync

rsync over HTTP, with bsdiff residue reduction.

Edit this page on GitLab

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 .zsync format, so control files are interchangeable with the reference implementations in both directions.
  • Residue reduction: An optional .zdelta sidecar 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 .zsync file is.
  • Extensibility: Every remote read goes through a Transport trait, so an embedder can supply its own TLS roots, proxy policy, or scheme rules.

Installation

Install the binaries with Zoi:

zoi install @zillowe/zync

Or from Crates.io:

cargo install --locked zync-cli

Quick 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.


A software organization

2026 © All Rights Reserved.

  • All the content is available under CC BY-SA 4.0, expect where otherwise stated.

Last updated on