JavaScript package manager benchmarks

Install and run times for JavaScript tools, measured nightly on identical runners and published in full, failures included.

Set up your agent

Every page on this site is also available as Markdown, and /llms.txt indexes them all. Paste this prompt into your agent to point it at the benchmarks:

Agent prompt
Help me use the vlt benchmarks. Start by reading https://benchmarks.vlt.io/llms.txt, which lists every page of the site and explains how to read the results. Every page is available as Markdown: append .md to its URL, or request the page with an Accept: text/markdown header. Query parameters apply to the Markdown as they do to the page: https://benchmarks.vlt.io/package-managers/clean.md?fixture=babylon is that scenario on one fixture. https://benchmarks.vlt.io/llms-full.txt holds every scenario of the latest run, at the default view, in one file.

1. For structured data, use the JSON API, described at https://benchmarks.vlt.io/openapi.json: /api/v1/runs, /api/v1/catalog, /api/v1/{section}/{scenario} (the full report, same parameters as the page) and /api/v1/{section}/{scenario}/history (the trend, failures and coverage).
2. To query it as tools, add the read-only MCP server with `claude mcp add --transport http vlt-benchmarks https://benchmarks.vlt.io/mcp`. Its tools are list_benchmarks, get_results, get_history and compare_scenarios.
3. When you report a result: total time is the measurement and the ranking. A DNF (the run exited non-zero) is never counted as a time, a tool that did not complete every fixture is not ranked against tools that did, and derived metrics are labelled "derived".

Only quote numbers that appear on the site, and name a run by its date.

Latest results

From the nightly run of . Each finding is the headline of its benchmark's report.

  1. registry.vlt.io: 17.5s
  2. registry.npmjs.org: 30.2s, the baseline
  3. JFrog Artifactory: 39.5s
  4. GitHub Packages: 72.4s
  5. AWS CodeArtifact: 93.4s
  6. Cloudsmith: 96.9s
Registries benchmark
  • 6tools
  • 6fixtures
  • 2scenarios

upm is fastest at 796ms, 34.3× faster than npm.

Not drawn: yarn (zpm), which did not complete every fixture. And 2 more in the full ranking.

  1. upm: 796ms
  2. bun: 1.91s
  3. aube: 3.26s
  4. pnpm: 4.23s
  5. vlt: 4.28s
  6. deno: 4.35s
  7. npm: 27.3s, the baseline
Package managers benchmark
  • 10tools
  • 6fixtures
  • 10scenarios

npm, the baseline, is fastest at 17.3s.

Not drawn: nx, which did not complete every fixture. And 6 more in the full ranking.

  1. npm: 17.3s, the baseline
  2. yarn: 17.5s
  3. node: 17.7s
  4. turborepo: 17.7s
  5. yarn (zpm): 17.8s
  6. bun: 17.9s
Task runners benchmark
  • 13tools
  • 1fixture
  • 3scenarios