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, so DeltaGlider stores the difference and rebuilds the rest on read. The S3 API is the same and your SDKs don't change.

It works on already-compressed archives

61,400%
smaller on compressed input: a 91 MB ZIP (a real ReadonlyREST plugin) stored as a 148 KB diff against the previous release.

Release after release, a ZIP or JAR contains the same entries in the same order: the manifest.mf, the icons, the bundled CSS. The bytes repeat, so the binary diff between two releases stays tiny even though each file inside the archive is already compressed.

Read the engineering note

What it costs in speed

We measured these numbers by running the repo's own benchmark harness on the same artifacts in four modes, in one Hetzner region, over a single stream:

ModePUTCold GETWarm GET
Passthrough (baseline)106 MB/s97 MB/s90 MB/s
Encryption only94 MB/sno slowdownno slowdown
Delta compression9 MB/s89 MB/sno slowdown
Compression + encryption9 MB/s85 MB/sno slowdown

The tax lands on the write path, once, where CI is the one waiting: the xdelta3 encode makes a single-stream upload about twelve times slower. Reads are the path a person feels. They pay about 30% on time to first byte when the reference is cold and nothing when it is warm. Encryption is effectively free.

Dogfooding

ReadonlyREST's build catalog now lives on Hetzner

Beshu Tech migrated its own ReadonlyREST build catalog, 1.71 TB on AWS S3, to Hetzner through DeltaGlider. The catalog now takes 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

01

Deploy

Run DeltaGlider in your VPC. Point it at your existing AWS bucket, or at a new Hetzner, Backblaze, or Cloudflare bucket. Anything S3-compatible works.

02

Scan

Use the Delta Efficiency Panel to scan a sample prefix and check that the compression is in the range that justifies the migration.

03

Stage

Stage the migration one bucket at a time with per-bucket aliases. Freeze writes during the window with quota_bytes: 0.

04

Cutover

Cut over your apps' S3 endpoint to DeltaGlider. The SDKs stay as they are.

05

Replicate

If you need a DR region, run replication rules to mirror new writes to it.

Next step