git clone, docker pull and big downloads are all-or-nothing: one dropped connection at 97% and you start again from zero. sabr splits them into small, resumable steps, so a drop costs a few seconds instead of the whole download. It even survives a reboot.
curl -fsSL https://mrzroot.github.io/sabr/install.sh | sh
The installer is resumable too, and it checks SHA-256. Single static binary; only needs git (for clone) and nothing else.
git clone→sabr clone
docker pull→sabr docker pull --load
curl -O→sabr get --sha256
Race them on a bad link
An interactive simulation of how each tool behaves on a link that drops. The real run, with real numbers, is further down.
Simulation
git clone
0%
sabr clone
0%
Time is sped up. Each tool's behaviour is simplified: git restarts the pack from zero after a drop; sabr loses only the step in flight, retries with backoff and halves the step size.
How sabr clone works
1
Latest commit
A blobless, depth-1 fetch: just commits and folders, a few hundred KB.
2
History, in steps
It deepens history step by step. The step size doubles after a success and halves after a drop.
3
Files, in batches
It lists the missing blobs and fetches them in adaptive batches. Any file that keeps failing is downloaded by byte range and hash-checked.
4
A normal repo
Then it checks out, sets the upstream and origin/HEAD, and you have the same result as git clone. Progress is saved in .git/sabr.json, so a kill or reboot just resumes.
sabr docker pull
Talks to the registry directly, resumes each layer from the byte it stopped at, and keeps a shared layer cache. It writes a docker load archive; add --load to load it into Docker or Podman. No daemon changes.