Will it corrupt my artifacts?
Every delta read is rebuilt and SHA-256-checked against the hash recorded at upload — and 1,100+ unit tests plus an integration matrix against real MinIO gate every merge.
Read the source — every line is public →An S3 proxy in front of your bucket — same API, zero client changes:
Built by Beshu Tech (the ReadonlyREST team), which serves its own 1.71 TB build catalog through it in production.
A real screen recording — not a mockup. Spin up an encrypted, compression-enabled backend, route a bucket to it, set up a user, then watch a versioned upload land at 96.7% smaller on disk, measured live.
The same ten uploads of a 91 MB build artifact, stored two ways. The bars are proportional; the deltas are drawn with a two-pixel floor, or they would be invisible.
The gap widens with every release. By v100 it's 9.1 GB against ~106 MB — 8,600% less. Our own release catalog landed at 8,850% smaller on a real release line.
Each upload is stored as a binary diff against a full reference copy kept beside it, and every read rebuilds the exact original — behind the same S3 API your tools already speak.
It speaks the S3 protocol your tools already speak — SigV4 signing, multipart uploads, range reads, presigned URLs. Repoint the endpoint; nothing else changes.
s3:
- endpoint: https://s3.eu-central-1.amazonaws.com
+ endpoint: https://dgp.internal:9000
access_key_id: ${AWS_ACCESS_KEY_ID} # unchanged
secret_access_key: ${AWS_SECRET_KEY} # unchanged xdelta3 files next to a plain reference
object — the stock CLI can rebuild every file without the
proxy running.
Point it at Hetzner, Wasabi, MinIO, or AWS — per-user IAM, SSO, replication, lifecycle, and encryption at rest ship in the same binary.
IAM with fine-grained ABAC permissions, plus OAuth/OIDC SSO with group mapping — an access layer your budget object store doesn’t have.
Replicate buckets between providers — event-driven or scheduled, with pause/resume. Migrate or run multi-cloud, without lock-in.
AES-256-GCM before objects hit the bucket. Your key stays in your runtime; the backend only ever sees ciphertext.
Replication, lifecycle, migrations, and re-encryption run as resumable jobs with run history. Webhook or Slack on every event; an audit trail on every admin action; live operational logs you can tail and filter in the browser.
None of it is a separate product: these screens ship inside the binary you download. Click to inspect.
Answered with links, so you can check for yourself.
Every delta read is rebuilt and SHA-256-checked against the hash recorded at upload — and 1,100+ unit tests plus an integration matrix against real MinIO gate every merge.
Read the source — every line is public →Here's what broke in ours: we pushed our own 1.71 TB release catalog through it and published every bug we hit — upstream TMPDIR, proxy timeouts, EBS exhaustion — with the fixes.
Read the migration log →A five-investigator correctness audit surfaced 10 bugs; all fixed, each pinned by a regression test, written up bug-by-bug where you can read them.
The bug-by-bug CHANGELOG →
The people whose names are in git log. Your mail
lands directly with the engineers who wrote the code.
These quotes are about ReadonlyREST — Beshu Tech's flagship product, built by the same engineers since 2017:
Our largest shared cluster [...] consolidates about 17 different use cases on the same hardware, lowering the total cost.
ReadonlyREST Enterprise is one of the few software I use or used professionally, and I would recommend it 200%.
I baked ReadonlyREST Free into SEC455 SIEM Design and Implementation. I'm openly recommending it to students and highlighting its features.
ReadonlyREST was quick and easy to implement, that gave us more time to spend on other important tasks.
| Your data looks like | Expected | Recommend |
|---|---|---|
| CI artifacts, build catalogs, plugin marketplaces | 1,000%–10,000% smaller | ✅ Yes |
| DB dumps, daily backups, ML model variants | 500%–5,000% smaller | ✅ Yes |
| Container layers, Maven / PyPI mirrors | 1,000%–5,000% smaller | ✅ Yes |
| Random user uploads, encrypted blobs, raw video | 0%–100% smaller | ❌ Use plain S3 |
| Append-only logs, streaming telemetry | 0% smaller | ❌ Use plain S3 |
Then put your real numbers into the savings calculator. More detail: for CI & build artifacts · for regulated buyers.
$ docker run --rm -it -p 9000:9000 -v dgp-data:/data \
-e DGP_AUTHENTICATION=none \
beshultd/deltaglider_proxy
Open http://localhost:9000/_/ for the browser, or
point any S3 SDK at http://localhost:9000. Open
access is for a localhost first look —
the second tutorial
locks it down.