0.9.0

Released 2026-09-10

Performance

  • viv update expands 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, add and rm no longer free the metadata cache and the pool before exiting (#177)
  • Platform detection (the php shell-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 php on PATH, viv update says 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