Cut the S3 bill for your build artifacts.
DeltaGlider is an S3 proxy that spots similar files and stores them as small binary diffs instead of full copies. Each build your CI ships shares most of its bytes with the previous one; DeltaGlider stores the difference and rebuilds the rest on read. Same S3 API — your SDKs don't change.
It works on already-compressed archives
Release after release, a ZIP or JAR contains the same entries in the
same order — same manifest.mf, same icons, same bundled
CSS. The bytes repeat, so the binary diff between two releases stays
tiny even though each file is internally compressed.
What it costs in speed
Measured with the repo's own benchmark harness — same artifacts, four modes, one Hetzner region, single stream:
| Mode | PUT | Cold GET | Warm GET |
|---|---|---|---|
| Passthrough (baseline) | 106 MB/s | 97 MB/s | 90 MB/s |
| Encryption only | 94 MB/s | no slowdown | no slowdown |
| Delta compression | 9 MB/s | 89 MB/s | no slowdown |
The tax lands on the write path, once, where CI is the one waiting: the xdelta3 encode makes a single-stream upload roughly twelve times slower. Reads — the path a person actually feels — pay about 30% on time to first byte when cold and nothing once the reference is warm. Encryption is effectively free.
ReadonlyREST's build catalog now lives on Hetzner
Beshu Tech migrated its own ReadonlyREST build catalog — 1.71 TB on AWS S3 — to Hetzner via DeltaGlider. It is stored in 134 GB, roughly 1,270% smaller, and serves production downloads today.
Verified results
| Version | Size (Encrypted) | Verdict |
|---|---|---|
| 1.69.0 | 2,866 MB → 32.4 MB -98.9% | Excellent |
| 1.38.0 | 13.7 GB → 3.3 GB -75.6% | Fair cross-major ES range |
| 1.17.1 | 26 MB → 6.8 MB -74.0% | Small dataset, dominated by reference |
| Full migration | 1.71 TB → 134 GB | Complete |
What a migration looks like
Deploy
Run DeltaGlider in your VPC. Point it at your existing AWS bucket — or a new Hetzner / Backblaze / Cloudflare bucket — anything S3-compatible.
Scan
Use the Delta Efficiency Panel to scan a sample prefix. Verify compression is in the range that justifies migration.
Stage
Stage migration bucket-by-bucket using per-bucket aliases.
Freeze writes during the window with
quota_bytes: 0.
Cutover
Cut over your apps' S3 endpoint to DeltaGlider. Your SDKs don't change.
Replicate
Run replication rules to mirror new writes to a DR region if you need one.