0.9.0
Released 2026-09-10
Performance
viv updateexpands Packagist's minified metadata lazily, once per version the resolver accepts, instead of materialising every version; Laravel's warm update from a local mirror falls from 607 ms to 230 ms, past Composer's 311 ms (#176)update,addandrmno longer free the metadata cache and the pool before exiting (#177)- Platform detection (the
phpshell-out) is cached under the cache dir, keyed by the php binary; 22 ms off every update (#178) - The pool indexes packages by name, so rule generation stops scanning: 65 ms to 29 ms on Laravel (#181)
- Linux x86_64 releases ship a glibc build next to the static musl one and the .deb uses it; the musl build measured 12 to 34 percent slower (#168)
Fixed
- The php-http/discovery adapter adds its generated strategy to the autoload classmap, as the plugin does (#157)
- With no
phpon PATH,viv updatesays which platform it assumed instead of blaming a missing extension, and a non-matching platform version is reported as Composer does: "found php[8.3.0] but it does not match the constraint" (#169)
Tooling
- The CI bench gate compares viv to Composer measured on the same runner, on the median run, so runner speed cancels out
bench/results/profile.md§6 to §8 record where a warm update spends its time