How we cut game update bandwidth by 94% building our own delta sync protocol
I'm building Raccreative Games, an indie game platform with a desktop launcher. Developers upload builds via a CLI tool called Clawdrop (Rust), and players download them through an Electron app. Ea...

Source: DEV Community
I'm building Raccreative Games, an indie game platform with a desktop launcher. Developers upload builds via a CLI tool called Clawdrop (Rust), and players download them through an Electron app. Early on, the update flow was simple and painful: developer changes two textures → uploads the entire 2.2 GB build → every player downloads 2.2 GB. The S3 egress bill didn't care that 98% of those bytes hadn't changed. I needed differential sync. What I ended up building is rac-delta, an open protocol with SDKs in Rust and Node. This post is about why existing tools didn't fit, how the protocol works, and what the real integration looks like in both a Rust CLI and an Electron app. Why existing tools didn't work Before building anything, I looked at what already existed: rsync needs SSH access to both ends. That's fine for server-to-server, but completely unworkable when one end is a developer's local machine and the other is S3 with temporary credentials. bsdiff / xdelta produce binary patches