Sley is the native Git engine under Heddle. This is every relevant case from upstream
Git's test suite, run against Sley and compared cell by cell. Skips excluded;
the number only ratchets up.
Wall-clock means against git 2.54.0, after warmups, tools interleaved and
rotated. Shorter is faster. Git, Sley and Grit are real CLIs. Bars marked →
run off the scale (real value labelled). Mean wall-clock ms, process start to exit. Source: /home/heddleco/dev/HeddleCo/06-20.01/sley-multi-impl-results-20260621-full-current. Git, Sley and Grit are real CLIs. Every included timing row validated byte-identical stdout against Git.
Typical command time by repo size: geometric mean of the ten measured human-facing
commands.Every command on the Flutter clone (15k files), slowest first.Harness engine timings on the Flutter clone, in-process only. Mean in-process harness wall-clock ms for validated engine calls from the same run. Unsupported commands and stdout mismatches are omitted.
Out of scope
These t-files sit outside the headline parity number — the serving end of transport, foreign-SCM interop, and email. The pass counts below are incidental: Git's server test files are mostly shared setup (init, commit, config) that Sley runs fine, so a count like 97/81 reflects scaffolding passing, not server support.
Footprint
spec // restricted
Footprint of the binaries that produced the timings. git is the real CLI; sley/gix/libgit2 are the minimal harnesses that embed each engine; Grit is its CLI. The dependency column is the apples-to-apples number — third-party crates only, excluding each project's own crates. libgit2's tiny crate count hides an entire C library.
SleyRust12.5 MiBfull CLI, static; embedded in a minimal harness (only a slice of the engine linked) it drops to ~1.86 MiB / 13 depsstatic — no shared libs36 external crates
noteHarness sizes read low for different reasons. gix's 4.86 MiB is the code its status/log harness actually links — Rust strips everything unreferenced, so a harness exercising more of gitoxide would be larger. libgit2's 0.50 MiB is small because the engine lives in the ~7.3 MiB C dylib it loads at runtime, not in the binary. So binary size tracks how much of each engine is exercised; the dependency count is the comparison that doesn't.
Parity = passing ÷ (passing + failing) per upstream test cell, skips excluded.
Scope: in-scope upstream t-files, 844 of 1042.
Client-side transport (fetch, clone, push, protocol) counts; the serving side,
foreign-SCM interop and email are broken out under Out of scope above.
Generated 2026-06-21 19:15 · aeda933e (sley main, post wave 8-12).