Build & release
Publish nightly and candidate builds directly from CI, with the same command every time.
Self-hosted build distribution for game teams
V-Sync turns game builds into content-addressed chunks, so fetching a build transfers only the chunks missing from your local store—not a second copy of the whole build.
Starfall Drift · FastCDC · BLAKE3
ϟ live stream tip
Passing · b3:a3f91c2e05 · 19h ago
The next build is usually mostly already on disk.
The old way
A tiny change to a giant game build should not mean another giant download. V-Sync makes each new build reuse the content your team already has.
How it works
V-Sync breaks files into content-addressed chunks and uploads only chunks the server does not already have.
vsync commit ./build --stream nightlyMove a named stream such as live, rc, or a personal branch to the build your teammates need.
V-Sync reads the build manifest, compares its chunk hashes with the local store, pulls the difference, then materializes a ready-to-run checkout.
Under the hood
Every regular file is split with FastCDC into variable-sized chunks (2 MiB average by default). Each chunk is addressed by a BLAKE3 hash and kept in a local content-addressable store.
A build is not a copied directory: it is a deterministic manifest of its file tree and ordered chunk references. The manifest’s hash is the build ID.
On commit, the client asks the server which hashes it is missing, uploads that subset, then registers the manifest. On fetch, it performs the same comparison in reverse. That is why a new build can be large on disk yet small on the wire.
Dedup depends on the build output. V-Sync is designed to re-synchronize across normal file shifts; non-deterministic packing or solid compression can still make a build largely new.
CLI-first by design
The vsync command is the primary interface: authenticate once, publish a build with its game/platform metadata, move streams, fetch by stream, version, or build ID, and manage the local cache.
For automation, CI supplies VSYNC_SERVER and VSYNC_TOKEN; developers can sign in with a personal token or an existing Perforce ticket.
$ vsync login --server https://builds.studio.com
logged in as ali
$ vsync --game starfall --platform win64 \
commit ./Build --stream nightly --version 0.9.5
uploaded 146 MiB · 2,417 chunks already present
$ vsync --game starfall --platform win64 fetch nightly
pulled 42 chunks, 146 MiB → builds/starfall/win64/nightly
Made for the reality of game builds
Nightlies, QA repros, release candidates, and a teammate’s local work can reference most of the same chunks. V-Sync turns that overlap into much smaller transfers and a predictable local build library.

Your builds stay yours
Run V-Sync on a straightforward server you control. Each person signs in with their own access token; CI can publish unattended. It also supports Perforce-backed sign-in for teams already using Helix.

For the people who keep builds moving
Publish nightly and candidate builds directly from CI, with the same command every time.
Fetch a known-good build or a precise repro without clearing room for another full copy.
Share personal, feature, and team-wide streams without losing where a build came from.