📈 GH Trending Explorer 🎲 Surprise me

← all repos

CarterT27 / scion

git clone https://github.com/CarterT27/scion.git

Implementation of Anthropic's version control system

—
stars, 24h
+229
stars, 7 days · #272
+229
stars, 30 days · #1,142
229
★ total · +229% this week
17
forks · 0 open issues

Star history starts 2026-10-20; the chart appears after the second daily snapshot.

LanguageRust
LicenseApache-2.0
Created2026-10-14 (6d ago)
Last push4d ago
Watchers1
OwnerUser

Links

README excerpt
# Scion
Source control for always-online clients, coding agents, and CI.
Scion is an independent, clean-room Rust implementation inspired by Anthropic's
Redesigning source control.
It explores the architecture described in that post: keep history and expensive operations
on the server, fetch immutable objects as needed, and check out only the paths a job needs.
This repository is not Anthropic's implementation and is not affiliated with Anthropic.
## Star History
## Benchmarks
The benchmark runner compares Scion with
Git on the four synthetic workloads used by
OpenScion.
These are local measurements of this implementation, using its own deterministic fixture.
Median wall-clock times, measured 2026-10-14 on an Apple M4 Pro with 24 GiB RAM,
macOS 26.6.2, Rust 1.98.0, and Git 2.56.0. Scion was built in release mode from
`9d27736` plus the benchmark runner. Each file contains 4 KiB of seeded pseudorandom bytes,
spread across 10 directories; the 1,000-file case uses seven runs and the 10,000-file case
uses five. All times are milliseconds; lower is better.
| Scenario | Git, 1k files | Scion, 1k | Git, 10k files | Scion, 10k |
| --- | ---: | ---: | ---: | ---: |
| Import directory | 456.6 | 39.7 | 3,907.1 | 500.5 |
| Commit one changed file | 33.6 | 36.8 | 166.9 | 203.6 |
| Full clone / checkout | 242.2 | 170.1 | 2,223.9 | 1,590.2 |
| One-directory clone / checkout | 89.8 | 29.8 | 159.7 | 173.2 |
Scion imports and materializes the full tree faster in this setup. Git commits faster at
both sizes and is slightly faster for the 10k-file sparse case. Sparse checkout materializes
100 or 1,000 files respectively and fetches exactly that many blobs plus two trees.
Reproduce the measurements (requires Git and the build prerequisites below):
 [code] 
The positional arguments are files per directory and run count (defaults: `100 5`).
The runner prints each sample to stderr and a median table to stdout, uses a fresh temporary
repository and server per run, and removes its scratch files afterward. Setup, fixture
generation, authentication, and byte-for-byte checkout verification are outside the timers.
- **Import:** Git runs `init`, `add -A`, and `commit`. Scion reads the fixture files, hashes
 and uploads blobs in batches of 256, creates a parentless changeset, and creates a ref
 through the write APIs. This measures directory ingestion, not `scion-import`'s Git-history
 migration; fixture path enumeration is prepared beforehand.
- **Commit:** Change one byte in one file of the full working copy, then time Git
 `commit -a` or Scion's working-copy commit, including status scanning and blob upload.
 Neither side includes a subsequent push or land.
- **Full checkout:** Git uses `clone --no-local` to build and transfer a pack; Scion uses
 `WorkingCopy::checkout` with its default 256-object fetch batches.
- **Sparse checkout:** Git uses `clone --no-local --filter=blob:none --sparse` followed by
 `sparse-checkout set dir0000`, with filtering enabled on the source. Scio