frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: Rac-delta – open protocol for differential dir sync (Rust/Node SDKs)

https://raccreative.github.io/rac-delta-docs/
2•Raccreative•1h ago
I built a platform for indie game developers (Raccreative Games) that includes a desktop launcher and a CLI upload tool. Developers push builds from their machine; players download them through an Electron app. https://raccreativegames.com/en/home

The problem: every update (even changing a single texture) transferred the entire build over S3. A 2.2 GB game with minor changes meant 2.2 GB up and 2.2 GB down, every time, for every user. I looked for an existing solution and found nothing that fit:

- rsync needs SSH on both ends, doesn't compose with arbitrary cloud storage - bsdiff/xdelta operate on single files, not directories

So I built rac-delta: an open, storage-agnostic differential sync protocol with SDKs in Rust and Node.

- How it works -

The protocol splits files into fixed-size chunks (default 1 MB), hashes each with Blake3, and produces a manifest file "rd-index.json" that describes the full directory, every file, every chunk, every hash.

To sync:

1. Generate a local rd-index.json by scanning the directory

2. Fetch the remote rd-index.json from your storage backend if there is one

3. Compare them to produce a DeltaPlan:

  DeltaPlan {
    newAndModifiedFiles: FileEntry[]
    deletedFiles: string[]
    missingChunks: ChunkEntry[]
    obsoleteChunks: ChunkEntry[]
  }
4. Transfer only the missingChunks

5. Clean up obsolete chunks

6. Push the updated rd-index.json

Chunks are deduplicated across files, if two files share identical regions, that chunk is stored and transferred once.

Blake3 is notably faster than SHA-256 for large directory scans, which matters when you're hashing multi-gigabyte directories on every sync.

- Storage-agnostic by design -

rac-delta has no opinion about where chunks live. The SDKs ship adapters for S3, Azure Blob, GCS, SSH, HTTP, signed URLs (this one is experimental), and local filesystem.

- Benchmark results (real S3 infrastructure, 2.2 GB directory) -

Download transfer -> rac-delta (116MB) -> raw S3 (2219MB) -> Reduction of 94.7%

Upload transfer -> rac-delta (115MB) -> raw S3 (2210MB) -> Reduction of 94.8%

Download time -> rac-delta (35.5s) -> raw S3 (671.2s)

Upload time -> rac-delta (53.3s) -> raw S3 (268.9s)

Egress cost / 1000 users (aprox.) -> rac-delta (9.66€) -> raw S3 (184.27€) -> 19x cheaper

And the base upload (first-time, no remote index) takes 172.6s with rac-delta vs 209.4s raw, slightly faster even on full uploads because of concurrent chunk streaming.

(The initial tests were run on a single machine with slow internet against eu-central-1, and production tests on Raccreative Games)

- Three download strategies -

Different environments need different tradeoffs:

- Memory-first: all chunks into RAM, then reconstruct. Best for small builds, fast networks

- Disk-first: chunks to a temp directory, then reconstruct. Better for low-memory devices

- Streaming (recommended): reconstruct files as chunks arrive. No extra RAM or disk overhead

- Production usage -

Raccreative Games uses rac-delta in production today. The CLI tool Clawdrop (Rust) handles uploads; the desktop launcher (Electron/Node) handles downloads. Both use the respective SDKs directly.

https://github.com/raccreative/clawdrop

- Open protocol, MIT licensed -

rac-delta is a documented open protocol - anyone can implement it in any language. The Rust and Node SDKs are the reference implementations.

Docs: https://raccreative.github.io/rac-delta-docs/

Benchmarks + ROI calculator: https://racdelta.com/en/

Node SDK: https://github.com/raccreative/rac-delta-js

Rust SDK: https://github.com/raccreative/rac-delta-rs

Looking for feedback from teams distributing large binaries - desktop app installers, ML model weights, firmware OTA updates, simulation assets, or anything where "upload the whole thing again" is your current answer. Happy to run benchmarks against your specific file patterns.

Optimizing SQLite for Servers

https://kerkour.com/sqlite-for-servers
1•randomint64•16s ago•0 comments

Claude Code is locking people out for hours

https://github.com/anthropics/claude-code/issues/44257
2•sh1mmer•1m ago•0 comments

Trump: 'a whole civilisation will die tonight'

https://www.bbc.co.uk/news/live/c5yw4g3z7qgt
1•xvxvx•1m ago•1 comments

Lunar Flyby

https://www.nasa.gov/gallery/lunar-flyby/
1•kipi•2m ago•0 comments

Building EU payment infra for agents

https://github.com/whire-ai/whire-python-sdk
1•pyjka•3m ago•1 comments

Show HN: Testreel – Programmatic product demo videos from JSON and Playwright

https://github.com/greentfrapp/testreel
1•greentfrapp•3m ago•0 comments

Why Japanese has words for feelings we tend to ignore (mono no aware)

https://rajavijayaraman.com/writing/mono-no-aware/
1•rajavijayaraman•3m ago•0 comments

Show HN: VibeAround – Use Claude Code, Codex, Cursor from IM, Built on ACP (

https://github.com/jazzenchen/VibeAround
1•jazzen•4m ago•0 comments

H1B Abuse Exposed in Growing Texas City [video]

https://www.youtube.com/watch?v=ralf0yL1Tfw
1•profdevloper•5m ago•0 comments

Show HN: Opensidian: Local-first notes in the browser with POSIX shell and sync

https://opensidian.com
1•braden-w•5m ago•0 comments

Show HN: Beta Testing needed for my package Trustcheck

https://github.com/Halfblood-Prince/trustcheck
2•halfblood1010•6m ago•0 comments

Ace-Step-1.5 playground- SOTA open source music model

https://mesmer.tools/free-tools/ai-music-maker
1•mesmertech•7m ago•1 comments

MCP-slim, an auto-optimizing MCP proxy that cuts 99% of token waste

https://github.com/uaziz1/mcp-slim
1•uaziz1•8m ago•2 comments

A WIP arbitrary precision arithmetic library (alternative to GMP)

1•Tommyrexx•8m ago•1 comments

ELN Finder to search and select a suitable Electronic Lab Notebook

https://eln-finder.ulb.tu-darmstadt.de/home
1•eamag•9m ago•0 comments

Seeking review: Signal-like protocol in Dart

https://github.com/Dritonsallahu/risaal-crypto
1•dritoonnss•10m ago•0 comments

Claude is having another moment, again

https://downdetector.co.uk/status/claude-ai/
3•ksajadi•12m ago•0 comments

How to Build an AI Agent for Slack with Chat SDK and AI SDK

https://vercel.com/kb/guide/how-to-build-an-ai-agent-for-slack-with-chat-sdk-and-ai-sdk
1•flashbrew•13m ago•0 comments

Goodclaude, CLI that lets you pet Claude (it meows too)

https://github.com/Ijtihed/goodclaude
1•ijtihed1•14m ago•1 comments

Claude Login Down?

https://downdetector.com.br/en/status/claude-ai/
5•raimille1•14m ago•2 comments

The (First?) Social Media Addiction Trial

https://12gramsofcarbon.com/p/tech-things-social-media-addiction
1•theahura•14m ago•0 comments

Run Gemma 4 locally with OpenClaw in 3 steps

https://twitter.com/googlegemma/status/2041512106269319328
2•xnx•16m ago•0 comments

Modos Flow 60 Hz 13.3 inch E Ink monitor, open source firmware, touch and stylus

https://liliputing.com/modos-flow-is-a-13-3-inch-e-ink-monitor-with-a-60-hz-display-open-source-f...
1•t-3•16m ago•0 comments

Exploring the impacts of California's minimum wage for fast food workers

https://news.ucsc.edu/2026/03/exploring-impacts-california-minimum-wage-fast-food-workers/
1•josephcsible•16m ago•0 comments

A Case for Monolith

https://charlesfonseca.substack.com/p/software-artchitecture-an-unorthodox
1•barddoo•16m ago•0 comments

GapQuery: Find what to build next across 11 app ecosystems

https://www.gapquery.com
1•northify•17m ago•0 comments

Show HN: OneManCompany The first AI company with real corporate org structure

https://one-man-company.com/
1•yuzhengxu•19m ago•0 comments

Mathematical Psychology: Where Numbers Meet Neurons

https://neurolaunch.com/psychology-math/
1•lifecodes•22m ago•0 comments

From judgment lists to trained Learning to Rank (LTR) models

https://www.elastic.co/search-labs/blog/learning-to-rank-models-judgment-lists
1•eigenBasis•22m ago•0 comments

Men's heart risk rises by age 35, 7 years earlier than women

https://www.empirical.health/blog/men-vs-women-heart-disease/
1•brandonb•23m ago•0 comments