Compare

Composer, riff, vivacity and viv on the same corpus and the same compatibility sweep. Every number below comes from a results file in the repository, not a guess — see the sources under each table.

Speed

Tool Cold Warm No-op Update-warm
Composer 1.52s 1.11s 0.20s 0.35s
riff 0.56s (9/10) 0.47s (9/10) 0.07s (9/10) n/a
viv 0.26s 0.06s 0.01s 0.21s
vivacity 0.41s (6/10) 0.12s (6/10) 0.04s (6/10) 0.22s (6/10)

viv 0.12.0, composer 2.10.2, riff 0.0.7, vivacity 0.6.0, flags --no-plugins --no-scripts, 3 runs each, from a local mirror. source: bench/results/corpus.md, section 2026-09-15T06:54:06Z (2026-09-15)

Skips recorded for this run:

Capability

Composer riff vivacity viv
Byte-identical vendor/ is the reference no — 4 differences (autoloader-suffix, provide order, NULL vs null, a newer InstalledVersions.php) (JOURNAL.md, 2026-09-06) not measured here yes, 10/10 pinned projects (compat/results/v0.13.0.md)
Corpus projects installed (of 10) 10 9 6 10
Plugins handled natively all (runs PHP) not measured here its known list (JOURNAL.md, 2026-09-15) 14 adapters (docs/plugin-strategy.md)
Needs PHP to install yes no no no
Drop-in composer shim yes
Publishes its failures NOTICE, changelog compat/results/, bench/results/corpus.md footnotes, JOURNAL.md

n/a and "not measured here" cells are viv's own gaps too, not just a missing measurement for someone else: see docs/stability.md for what viv's output contract does and doesn't cover.