From 458d03483867a3a01a6da5d8fed314a837884d57 Mon Sep 17 00:00:00 2001 From: donfear Date: Wed, 21 Oct 2026 15:58:01 +0000 Subject: [PATCH] docs: update benchmark results --- README.md | 66 ++++++++--- docs/benchmark/speed-dark.svg | 134 +++++++++++++-------- docs/benchmark/speed-light.svg | 134 +++++++++++++-------- docs/guide/benchmarks.md | 208 +++++++++++++++++++++++++++++---- 4 files changed, 408 insertions(+), 134 deletions(-) diff --git a/README.md b/README.md index b958271..210e62f 100644 --- a/README.md +++ b/README.md @@ -81,30 +81,58 @@ Need to leave a package alone? Run `npx inup --ignore "react,react-dom"`, or sav ## Speed -How long each tool takes to list every outdated dependency, from launch to exit, on public repositories pinned to a commit. Lower is better. +How long each tool takes, on public repositories pinned to a commit, to list every outdated dependency and to open its picker with every update loaded. Lower is better. - First-run times in seconds. expressjs/express: inup 0.35 s, npm-check-updates 0.66 s, taze 0.65 s, npm-check 1.07 s, npm outdated 0.90 s; vuejs/core: inup 0.95 s, npm-check-updates 4.36 s, taze 1.46 s, pnpm outdated 1.45 s; TanStack/query: inup 2.68 s, npm-check-updates 12.4 s, taze 9.84 s, pnpm outdated 2.99 s + First-run times in seconds. expressjs/express: inup 0.39 s, npm-check-updates 0.68 s, taze 0.85 s, syncpack 0.23 s, npm-check 1.11 s, npm outdated 0.92 s; vuejs/core: inup 1.01 s, npm-check-updates 4.44 s, taze 0.83 s, syncpack 0.99 s, pnpm outdated 1.50 s; TanStack/query: inup 2.03 s, npm-check-updates 11.2 s, taze 8.47 s, syncpack 2.40 s, pnpm outdated 2.27 s; vendurehq/vendure: inup 3.38 s, npm-check-updates 4.60 s, taze 6.43 s, syncpack 3.83 s, bun outdated 1.54 s; backstage/backstage: inup 3.51 s, npm-check-updates 26.9 s, taze 8.33 s, syncpack 4.54 s -| First run | [expressjs/express](https://github.com/expressjs/express/tree/0dee2c52c7c873498f8ed7d8ee4ddd0a04d3ada8)
1 package.json · 44 dependencies | [vuejs/core](https://github.com/vuejs/core/tree/65eae178383289b6a9f93505ab85017460f72395)
22 package.json files · 69 dependencies | [TanStack/query](https://github.com/TanStack/query/tree/ce77be5e15c695df9d4d9122caf9256d334433ba)
105 package.json files · 190 dependencies | -| :-- | --: | --: | --: | -| inup | **0.35 s** | **0.95 s** | **2.68 s** | -| npm-check-updates | 0.66 s | 4.36 s | 12.4 s | -| taze | 0.65 s | 1.46 s | 9.84 s | -| npm-check | 1.07 s | — | — | -| npm outdated / pnpm outdated | 0.90 s | 1.45 s | 2.99 s | - -| Repeat run | [expressjs/express](https://github.com/expressjs/express/tree/0dee2c52c7c873498f8ed7d8ee4ddd0a04d3ada8) | [vuejs/core](https://github.com/vuejs/core/tree/65eae178383289b6a9f93505ab85017460f72395) | [TanStack/query](https://github.com/TanStack/query/tree/ce77be5e15c695df9d4d9122caf9256d334433ba) | -| :-- | --: | --: | --: | -| inup | 0.31 s | 0.44 s | **0.64 s** | -| npm-check-updates | 0.69 s | 4.37 s | 12.1 s | -| taze | **0.21 s** | 0.53 s | 6.67 s | -| npm-check | 1.09 s | — | — | -| npm outdated / pnpm outdated | 0.69 s | **0.21 s** | 4.70 s | - -First run: every cache the tool keeps is emptied before each run. Repeat run: caches kept. Median of 10 runs per tool with [hyperfine](https://github.com/sharkdp/hyperfine) 1.20.0 on GitHub Actions ubuntu24 20261018.339.1, 4 CPUs, Node v24.22.0, 21 Oct 2026. inup's times include its vulnerability check, which the other tools don't run. Fastest in **bold**. +### Listing outdated dependencies + +Each tool prints every outdated dependency and exits. + +| First run | [expressjs/express](https://github.com/expressjs/express/tree/0dee2c52c7c873498f8ed7d8ee4ddd0a04d3ada8)
1 package.json · 44 dependencies | [vuejs/core](https://github.com/vuejs/core/tree/65eae178383289b6a9f93505ab85017460f72395)
22 package.json files · 69 dependencies | [TanStack/query](https://github.com/TanStack/query/tree/ce77be5e15c695df9d4d9122caf9256d334433ba)
105 package.json files · 190 dependencies | [vendurehq/vendure](https://github.com/vendurehq/vendure/tree/1dcaf0ee504675f3462d6302c23ff9f16beb2773)
54 package.json files · 323 dependencies | [backstage/backstage](https://github.com/backstage/backstage/tree/76b0c7a48ef737b1a46342c29269827715d70684)
269 package.json files · 591 dependencies | +| :-- | --: | --: | --: | --: | --: | +| inup | 0.39 s | 1.01 s | **2.03 s** | 3.38 s | **3.51 s** | +| npm-check-updates | 0.68 s | 4.44 s | 11.2 s | 4.60 s | 26.9 s | +| taze | 0.85 s | **0.83 s** | 8.47 s | 6.43 s | 8.33 s | +| syncpack | **0.23 s** | 0.99 s | 2.40 s | 3.83 s | 4.54 s | +| npm-check | 1.11 s | — | — | — | — | +| npm / pnpm / bun outdated | 0.92 s | 1.50 s | 2.27 s | **1.54 s** | — | + +| Repeat run | [expressjs/express](https://github.com/expressjs/express/tree/0dee2c52c7c873498f8ed7d8ee4ddd0a04d3ada8) | [vuejs/core](https://github.com/vuejs/core/tree/65eae178383289b6a9f93505ab85017460f72395) | [TanStack/query](https://github.com/TanStack/query/tree/ce77be5e15c695df9d4d9122caf9256d334433ba) | [vendurehq/vendure](https://github.com/vendurehq/vendure/tree/1dcaf0ee504675f3462d6302c23ff9f16beb2773) | [backstage/backstage](https://github.com/backstage/backstage/tree/76b0c7a48ef737b1a46342c29269827715d70684) | +| :-- | --: | --: | --: | --: | --: | +| inup | 0.36 s | 0.40 s | 0.58 s | 0.78 s | 1.92 s | +| npm-check-updates | 0.71 s | 4.63 s | 10.7 s | 4.75 s | 28.3 s | +| taze | 0.21 s | 0.31 s | 5.00 s | 1.88 s | 3.97 s | +| syncpack | **0.04 s** | 0.13 s | **0.37 s** | 0.66 s | **0.49 s** | +| npm-check | 1.13 s | — | — | — | — | +| npm / pnpm / bun outdated | 0.68 s | **0.13 s** | 2.82 s | **0.08 s** | — | + +### Opening the picker + +Each tool's interactive list of updates, timed until every update is loaded. + +| First run | [expressjs/express](https://github.com/expressjs/express/tree/0dee2c52c7c873498f8ed7d8ee4ddd0a04d3ada8) | [vuejs/core](https://github.com/vuejs/core/tree/65eae178383289b6a9f93505ab85017460f72395) | [TanStack/query](https://github.com/TanStack/query/tree/ce77be5e15c695df9d4d9122caf9256d334433ba) | [vendurehq/vendure](https://github.com/vendurehq/vendure/tree/1dcaf0ee504675f3462d6302c23ff9f16beb2773) | [backstage/backstage](https://github.com/backstage/backstage/tree/76b0c7a48ef737b1a46342c29269827715d70684) | +| :-- | --: | --: | --: | --: | --: | +| inup | 0.49 s | 1.25 s | 2.23 s | 3.64 s | **3.52 s** | +| npm-check-updates | 0.71 s | — | — | — | — | +| taze | 0.91 s | **0.84 s** | 9.02 s | 4.58 s | 8.77 s | +| syncpack | **0.26 s** | 1.19 s | **2.19 s** | 3.55 s | 4.02 s | +| npm-check | 1.21 s | — | — | — | — | +| pnpm / bun update -i / yarn upgrade-interactive | — | 1.49 s | 2.25 s | **1.60 s** | 5.88 s | + +| Repeat run | [expressjs/express](https://github.com/expressjs/express/tree/0dee2c52c7c873498f8ed7d8ee4ddd0a04d3ada8) | [vuejs/core](https://github.com/vuejs/core/tree/65eae178383289b6a9f93505ab85017460f72395) | [TanStack/query](https://github.com/TanStack/query/tree/ce77be5e15c695df9d4d9122caf9256d334433ba) | [vendurehq/vendure](https://github.com/vendurehq/vendure/tree/1dcaf0ee504675f3462d6302c23ff9f16beb2773) | [backstage/backstage](https://github.com/backstage/backstage/tree/76b0c7a48ef737b1a46342c29269827715d70684) | +| :-- | --: | --: | --: | --: | --: | +| inup | 0.46 s | 0.48 s | **0.84 s** | **0.93 s** | **1.92 s** | +| npm-check-updates | 0.71 s | — | — | — | — | +| taze | **0.23 s** | 0.30 s | 5.07 s | 1.91 s | 4.05 s | +| syncpack | 0.25 s | 1.12 s | 2.10 s | 3.51 s | 4.22 s | +| npm-check | 1.16 s | — | — | — | — | +| pnpm / bun update -i / yarn upgrade-interactive | — | **0.12 s** | 2.76 s | 1.63 s | 2.15 s | + +First run: every cache the tool keeps is emptied before each run. Repeat run: caches kept. Median of 10 runs per tool on GitHub Actions ubuntu24 20261018.339.1, 4 CPUs, Node v24.22.0, 21 Oct 2026; listing timed with [hyperfine](https://github.com/sharkdp/hyperfine) 1.20.0. Pickers run in a 160×50 terminal and count as loaded at the last thing they draw or write to their cache before 5 s of quiet, so rows fetched off screen count too. inup's times include its vulnerability check, which the other tools don't run. inup's first picker run also downloads its native core (about 1.5 MB). Fastest in **bold**. [How it's measured, tool versions and exact commands](docs/guide/benchmarks.md) diff --git a/docs/benchmark/speed-dark.svg b/docs/benchmark/speed-dark.svg index a7b66a8..3992393 100644 --- a/docs/benchmark/speed-dark.svg +++ b/docs/benchmark/speed-dark.svg @@ -1,51 +1,91 @@ - + How long each tool takes to list outdated dependencies -First-run times in seconds. expressjs/express: inup 0.35 s, npm-check-updates 0.66 s, taze 0.65 s, npm-check 1.07 s, npm outdated 0.90 s; vuejs/core: inup 0.95 s, npm-check-updates 4.36 s, taze 1.46 s, pnpm outdated 1.45 s; TanStack/query: inup 2.68 s, npm-check-updates 12.4 s, taze 9.84 s, pnpm outdated 2.99 s +First-run times in seconds. expressjs/express: inup 0.39 s, npm-check-updates 0.68 s, taze 0.85 s, syncpack 0.23 s, npm-check 1.11 s, npm outdated 0.92 s; vuejs/core: inup 1.01 s, npm-check-updates 4.44 s, taze 0.83 s, syncpack 0.99 s, pnpm outdated 1.50 s; TanStack/query: inup 2.03 s, npm-check-updates 11.2 s, taze 8.47 s, syncpack 2.40 s, pnpm outdated 2.27 s; vendurehq/vendure: inup 3.38 s, npm-check-updates 4.60 s, taze 6.43 s, syncpack 3.83 s, bun outdated 1.54 s; backstage/backstage: inup 3.51 s, npm-check-updates 26.9 s, taze 8.33 s, syncpack 4.54 s -First run, empty caches · seconds, lower is better -expressjs/express -1 package.json · 44 dependencies -inup - -0.35 s -taze - -0.65 s -npm-check-updates - -0.66 s +Listing outdated dependencies, first run (empty caches) · seconds, lower is better +expressjs/express +1 package.json · 44 dependencies +syncpack + +0.23 s +inup + +0.39 s +npm-check-updates + +0.68 s +taze + +0.85 s npm outdated - -0.90 s -npm-check - -1.07 s -vuejs/core -22 package.json files · 69 dependencies -inup - -0.95 s -pnpm outdated - -1.45 s -taze - -1.46 s -npm-check-updates - -4.36 s -TanStack/query -105 package.json files · 190 dependencies -inup - -2.68 s -pnpm outdated - -2.99 s -taze - -9.84 s -npm-check-updates - -12.4 s + +0.92 s +npm-check + +1.11 s +vuejs/core +22 package.json files · 69 dependencies +taze + +0.83 s +syncpack + +0.99 s +inup + +1.01 s +pnpm outdated + +1.50 s +npm-check-updates + +4.44 s +TanStack/query +105 package.json files · 190 dependencies +inup + +2.03 s +pnpm outdated + +2.27 s +syncpack + +2.40 s +taze + +8.47 s +npm-check-updates + +11.2 s +vendurehq/vendure +54 package.json files · 323 dependencies +bun outdated + +1.54 s +inup + +3.38 s +syncpack + +3.83 s +npm-check-updates + +4.60 s +taze + +6.43 s +backstage/backstage +269 package.json files · 591 dependencies +inup + +3.51 s +syncpack + +4.54 s +taze + +8.33 s +npm-check-updates + +26.9 s diff --git a/docs/benchmark/speed-light.svg b/docs/benchmark/speed-light.svg index 26f9822..d812d4d 100644 --- a/docs/benchmark/speed-light.svg +++ b/docs/benchmark/speed-light.svg @@ -1,51 +1,91 @@ - + How long each tool takes to list outdated dependencies -First-run times in seconds. expressjs/express: inup 0.35 s, npm-check-updates 0.66 s, taze 0.65 s, npm-check 1.07 s, npm outdated 0.90 s; vuejs/core: inup 0.95 s, npm-check-updates 4.36 s, taze 1.46 s, pnpm outdated 1.45 s; TanStack/query: inup 2.68 s, npm-check-updates 12.4 s, taze 9.84 s, pnpm outdated 2.99 s +First-run times in seconds. expressjs/express: inup 0.39 s, npm-check-updates 0.68 s, taze 0.85 s, syncpack 0.23 s, npm-check 1.11 s, npm outdated 0.92 s; vuejs/core: inup 1.01 s, npm-check-updates 4.44 s, taze 0.83 s, syncpack 0.99 s, pnpm outdated 1.50 s; TanStack/query: inup 2.03 s, npm-check-updates 11.2 s, taze 8.47 s, syncpack 2.40 s, pnpm outdated 2.27 s; vendurehq/vendure: inup 3.38 s, npm-check-updates 4.60 s, taze 6.43 s, syncpack 3.83 s, bun outdated 1.54 s; backstage/backstage: inup 3.51 s, npm-check-updates 26.9 s, taze 8.33 s, syncpack 4.54 s -First run, empty caches · seconds, lower is better -expressjs/express -1 package.json · 44 dependencies -inup - -0.35 s -taze - -0.65 s -npm-check-updates - -0.66 s +Listing outdated dependencies, first run (empty caches) · seconds, lower is better +expressjs/express +1 package.json · 44 dependencies +syncpack + +0.23 s +inup + +0.39 s +npm-check-updates + +0.68 s +taze + +0.85 s npm outdated - -0.90 s -npm-check - -1.07 s -vuejs/core -22 package.json files · 69 dependencies -inup - -0.95 s -pnpm outdated - -1.45 s -taze - -1.46 s -npm-check-updates - -4.36 s -TanStack/query -105 package.json files · 190 dependencies -inup - -2.68 s -pnpm outdated - -2.99 s -taze - -9.84 s -npm-check-updates - -12.4 s + +0.92 s +npm-check + +1.11 s +vuejs/core +22 package.json files · 69 dependencies +taze + +0.83 s +syncpack + +0.99 s +inup + +1.01 s +pnpm outdated + +1.50 s +npm-check-updates + +4.44 s +TanStack/query +105 package.json files · 190 dependencies +inup + +2.03 s +pnpm outdated + +2.27 s +syncpack + +2.40 s +taze + +8.47 s +npm-check-updates + +11.2 s +vendurehq/vendure +54 package.json files · 323 dependencies +bun outdated + +1.54 s +inup + +3.38 s +syncpack + +3.83 s +npm-check-updates + +4.60 s +taze + +6.43 s +backstage/backstage +269 package.json files · 591 dependencies +inup + +3.51 s +syncpack + +4.54 s +taze + +8.33 s +npm-check-updates + +26.9 s diff --git a/docs/guide/benchmarks.md b/docs/guide/benchmarks.md index 26cbcd2..064f58f 100644 --- a/docs/guide/benchmarks.md +++ b/docs/guide/benchmarks.md @@ -72,15 +72,18 @@ Fixtures: `express`, `vue-core`, `tanstack-query`, `vendure`, `backstage`. Times [`expressjs/express@0dee2c5`](https://github.com/expressjs/express/tree/0dee2c52c7c873498f8ed7d8ee4ddd0a04d3ada8) · npm · 1 package.json · 44 dependencies +Median, ± standard deviation, min–max, over 10 runs. Measured 21 Oct 2026 on GitHub Actions ubuntu24 20261018.339.1 · Linux 7.0.0-1017-azure · AMD EPYC 7763 64-Core Processor · 4 CPUs · 16 GB · Node v24.22.0 · hyperfine 1.20.0 · [workflow run](https://github.com/donfear/inup/actions/runs/39625653309). + +#### Listing outdated dependencies + | Tool | Version | First run | Repeat run | Updates found | | :-- | :-- | --: | --: | --: | -| inup | 1.8.7 (77f554e) | **0.35 s** ± 0.01
0.34–0.38 | 0.31 s ± 0.01
0.30–0.34 | 22 | -| npm-check-updates | 23.1.1 | 0.66 s ± 0.03
0.63–0.72 | 0.69 s ± 0.03
0.65–0.73 | 21 | -| taze | 21.3.0 | 0.65 s ± 0.55
0.48–2.30 | **0.21 s** ± 0.00
0.21–0.22 | 21 | -| npm-check | 6.0.1 | 1.07 s ± 0.03
1.04–1.15 | 1.09 s ± 0.04
1.05–1.16 | — | -| npm outdated | 11.19.1 | 0.90 s ± 0.01
0.89–0.93 | 0.69 s ± 0.01
0.67–0.70 | 13 | - -Median, ± standard deviation, min–max, over 10 runs. Measured 21 Oct 2026 on GitHub Actions ubuntu24 20261018.339.1 · Linux 7.0.0-1017-azure · AMD EPYC 7763 64-Core Processor · 4 CPUs · 16 GB · Node v24.22.0 · hyperfine 1.20.0 · [workflow run](https://github.com/donfear/inup/actions/runs/39603646627). +| inup | 1.8.7 (4103ffa) | 0.39 s ± 0.03
0.37–0.47 | 0.36 s ± 0.02
0.34–0.41 | 22 | +| npm-check-updates | 23.1.1 | 0.68 s ± 0.02
0.66–0.72 | 0.71 s ± 0.04
0.68–0.80 | 21 | +| taze | 21.3.0 | 0.85 s ± 1.40
0.51–5.19 | 0.21 s ± 0.00
0.21–0.21 | 21 | +| syncpack | 15.3.3 | **0.23 s** ± 0.06
0.20–0.40 | **0.04 s** ± 0.00
0.04–0.05 | 22 | +| npm-check | 6.0.1 | 1.11 s ± 0.03
1.07–1.17 | 1.13 s ± 0.02
1.09–1.16 | — | +| npm outdated | 11.19.1 | 0.92 s ± 0.02
0.89–0.94 | 0.68 s ± 0.01
0.67–0.70 | 13 | Commands, run in the repository root: @@ -88,23 +91,48 @@ Commands, run in the repository root: inup --json ncu --jsonUpgraded taze major --include-locked --no-github-actions --no-node-version --json +syncpack update --check npm-check --skip-unused npm outdated --json ``` +#### Opening the picker + +| Tool | Version | First run | Repeat run | +| :-- | :-- | --: | --: | +| inup | 1.8.7 (4103ffa) | 0.49 s ± 0.05
0.45–0.60 | 0.46 s ± 0.05
0.44–0.59 | +| npm-check-updates | 23.1.1 | 0.71 s ± 0.13
0.67–1.05 | 0.71 s ± 0.04
0.67–0.79 | +| taze | 21.3.0 | 0.91 s ± 1.93
0.54–5.41 | **0.23 s** ± 0.00
0.23–0.23 | +| syncpack | 15.3.3 | **0.26 s** ± 0.04
0.23–0.36 | 0.25 s ± 0.02
0.23–0.28 | +| npm-check | 6.0.1 | 1.21 s ± 0.14
1.11–1.60 | 1.16 s ± 0.13
1.11–1.55 | +| npm update -i | — | not run: npm has no interactive update | | + +Commands, run in the repository root in a 160×50 terminal: + +```sh +inup +ncu --interactive +taze major --interactive --include-locked --no-github-actions --no-node-version +syncpack update --interactive +npm-check --update --skip-unused +``` + ### vuejs/core [`vuejs/core@65eae17`](https://github.com/vuejs/core/tree/65eae178383289b6a9f93505ab85017460f72395) · pnpm@12.11.2 · 22 package.json files · 69 dependencies +Median, ± standard deviation, min–max, over 10 runs. Measured 21 Oct 2026 on GitHub Actions ubuntu24 20261012.334.1 · Linux 6.17.0-1022-azure · AMD EPYC 9V45 96-Core Processor · 4 CPUs · 16 GB · Node v24.21.0 · hyperfine 1.20.0 · [workflow run](https://github.com/donfear/inup/actions/runs/39625653309). + +#### Listing outdated dependencies + | Tool | Version | First run | Repeat run | Updates found | | :-- | :-- | --: | --: | --: | -| inup | 1.8.7 (77f554e) | **0.95 s** ± 0.02
0.91–0.97 | 0.44 s ± 0.02
0.43–0.51 | 26 | -| npm-check-updates | 23.1.1 | 4.36 s ± 0.19
4.21–4.76 | 4.37 s ± 0.26
4.21–4.96 | 25 | -| taze | 21.3.0 | 1.46 s ± 0.63
1.10–2.83 | 0.53 s ± 0.01
0.52–0.55 | 25 | -| pnpm outdated | 12.11.2 | 1.45 s ± 0.18
1.42–1.96 | **0.21 s** ± 0.01
0.20–0.22 | 27 | -| npm-check | — | not run: no workspace support | | | - -Median, ± standard deviation, min–max, over 10 runs. Measured 21 Oct 2026 on GitHub Actions ubuntu24 20261018.339.1 · Linux 7.0.0-1017-azure · AMD EPYC 7763 64-Core Processor · 4 CPUs · 16 GB · Node v24.22.0 · hyperfine 1.20.0 · [workflow run](https://github.com/donfear/inup/actions/runs/39603646627). +| inup | 1.8.7 (4103ffa) | 1.01 s ± 0.07
0.87–1.08 | 0.40 s ± 0.07
0.36–0.58 | 26 | +| npm-check-updates | 23.1.1 | 4.44 s ± 0.28
4.27–5.22 | 4.63 s ± 0.33
4.09–5.14 | 25 | +| taze | 21.3.0 | **0.83 s** ± 0.08
0.76–1.00 | 0.31 s ± 0.01
0.30–0.32 | 25 | +| syncpack | 15.3.3 | 0.99 s ± 0.27
0.89–1.80 | 0.13 s ± 0.00
0.13–0.14 | 23 | +| pnpm outdated | 12.11.2 | 1.50 s ± 0.20
1.46–2.13 | **0.13 s** ± 0.01
0.12–0.16 | 27 | +| npm-check | — | not run: no workspace support | | | Commands, run in the repository root: @@ -112,22 +140,46 @@ Commands, run in the repository root: inup --json ncu --jsonUpgraded --workspaces taze major --recursive --include-locked --no-github-actions --no-node-version --json +syncpack update --check pnpm outdated --recursive --format json ``` +#### Opening the picker + +| Tool | Version | First run | Repeat run | +| :-- | :-- | --: | --: | +| inup | 1.8.7 (4103ffa) | 1.25 s ± 0.14
1.02–1.45 | 0.48 s ± 0.06
0.41–0.57 | +| taze | 21.3.0 | **0.84 s** ± 0.59
0.77–2.64 | 0.30 s ± 0.02
0.29–0.34 | +| syncpack | 15.3.3 | 1.19 s ± 0.46
1.02–2.58 | 1.12 s ± 0.17
0.89–1.54 | +| pnpm update -i | 12.11.2 | 1.49 s ± 0.18
1.44–2.05 | **0.12 s** ± 0.00
0.12–0.14 | +| npm-check-updates | — | not run: asks about one package.json at a time | | +| npm-check | — | not run: no workspace support | | + +Commands, run in the repository root in a 160×50 terminal: + +```sh +inup +taze major --interactive --recursive --include-locked --no-github-actions --no-node-version +syncpack update --interactive +pnpm update --interactive --latest --recursive +``` + ### TanStack/query [`TanStack/query@ce77be5`](https://github.com/TanStack/query/tree/ce77be5e15c695df9d4d9122caf9256d334433ba) · pnpm@12.4.2 · 105 package.json files · 190 dependencies +Median, ± standard deviation, min–max, over 10 runs. Measured 21 Oct 2026 on GitHub Actions ubuntu24 20261012.334.1 · Linux 6.17.0-1022-azure · AMD EPYC 9V74 80-Core Processor · 4 CPUs · 16 GB · Node v24.21.0 · hyperfine 1.20.0 · [workflow run](https://github.com/donfear/inup/actions/runs/39625653309). + +#### Listing outdated dependencies + | Tool | Version | First run | Repeat run | Updates found | | :-- | :-- | --: | --: | --: | -| inup | 1.8.7 (77f554e) | **2.68 s** ± 0.04
2.62–2.74 | **0.64 s** ± 0.08
0.61–0.90 | 606 | -| npm-check-updates | 23.1.1 | 12.4 s ± 0.86
11.50–14.49 | 12.1 s ± 1.10
11.18–15.14 | 588 | -| taze | 21.3.0 | 9.84 s ± 0.70
8.61–10.70 | 6.67 s ± 0.07
6.59–6.85 | 601 | -| pnpm outdated | 12.4.2 | 2.99 s ± 0.08
2.80–3.08 | 4.70 s ± 0.09
4.62–4.90 | 99 | -| npm-check | — | not run: no workspace support | | | - -Median, ± standard deviation, min–max, over 10 runs. Measured 21 Oct 2026 on GitHub Actions ubuntu24 20261018.339.1 · Linux 7.0.0-1017-azure · AMD EPYC 7763 64-Core Processor · 4 CPUs · 16 GB · Node v24.22.0 · hyperfine 1.20.0 · [workflow run](https://github.com/donfear/inup/actions/runs/39603646627). +| inup | 1.8.7 (4103ffa) | **2.03 s** ± 0.06
1.96–2.17 | 0.58 s ± 0.12
0.49–0.89 | 606 | +| npm-check-updates | 23.1.1 | 11.2 s ± 4.06
10.21–23.57 | 10.7 s ± 0.29
10.33–11.21 | 588 | +| taze | 21.3.0 | 8.47 s ± 1.26
6.78–10.79 | 5.00 s ± 0.05
4.94–5.07 | 601 | +| syncpack | 15.3.3 | 2.40 s ± 1.37
2.19–6.06 | **0.37 s** ± 0.01
0.37–0.39 | 118 | +| pnpm outdated | 12.4.2 | 2.27 s ± 0.53
2.11–3.78 | 2.82 s ± 0.06
2.70–2.89 | 99 | +| npm-check | — | not run: no workspace support | | | Commands, run in the repository root: @@ -135,6 +187,120 @@ Commands, run in the repository root: inup --json ncu --jsonUpgraded --workspaces taze major --recursive --include-locked --no-github-actions --no-node-version --json +syncpack update --check pnpm outdated --recursive --format json ``` + +#### Opening the picker + +| Tool | Version | First run | Repeat run | +| :-- | :-- | --: | --: | +| inup | 1.8.7 (4103ffa) | 2.23 s ± 0.05
2.18–2.33 | **0.84 s** ± 0.41
0.59–2.04 | +| taze | 21.3.0 | 9.02 s ± 1.09
6.97–11.06 | 5.07 s ± 0.04
5.01–5.12 | +| syncpack | 15.3.3 | **2.19 s** ± 1.42
2.10–6.68 | 2.10 s ± 0.31
2.06–3.10 | +| pnpm update -i | 12.4.2 | 2.25 s ± 0.05
2.20–2.35 | 2.76 s ± 0.09
2.61–2.90 | +| npm-check-updates | — | not run: asks about one package.json at a time | | +| npm-check | — | not run: no workspace support | | + +Commands, run in the repository root in a 160×50 terminal: + +```sh +inup +taze major --interactive --recursive --include-locked --no-github-actions --no-node-version +syncpack update --interactive +pnpm update --interactive --latest --recursive +``` + +### vendurehq/vendure + +[`vendurehq/vendure@1dcaf0e`](https://github.com/vendurehq/vendure/tree/1dcaf0ee504675f3462d6302c23ff9f16beb2773) · bun · 54 package.json files · 323 dependencies + +Median, ± standard deviation, min–max, over 10 runs. Measured 21 Oct 2026 on GitHub Actions ubuntu24 20261012.334.1 · Linux 6.17.0-1022-azure · AMD EPYC 9V74 80-Core Processor · 4 CPUs · 16 GB · Node v24.21.0 · hyperfine 1.20.0 · [workflow run](https://github.com/donfear/inup/actions/runs/39625653309). + +#### Listing outdated dependencies + +| Tool | Version | First run | Repeat run | Updates found | +| :-- | :-- | --: | --: | --: | +| inup | 1.8.7 (4103ffa) | 3.38 s ± 0.99
3.23–6.52 | 0.78 s ± 0.06
0.70–0.88 | 362 | +| npm-check-updates | 23.1.1 | 4.60 s ± 0.23
4.52–5.15 | 4.75 s ± 0.23
4.42–5.15 | 352 | +| taze | 21.3.0 | 6.43 s ± 1.77
4.13–9.70 | 1.88 s ± 0.15
1.87–2.34 | 355 | +| syncpack | 15.3.3 | 3.83 s ± 2.90
3.68–12.88 | 0.66 s ± 0.07
0.63–0.86 | 253 | +| bun outdated | 1.4.3 | **1.54 s** ± 0.08
1.36–1.65 | **0.08 s** ± 0.00
0.07–0.09 | 327 | +| npm-check | — | not run: no workspace support | | | + +Commands, run in the repository root: + +```sh +inup --json +ncu --jsonUpgraded --workspaces +taze major --recursive --include-locked --no-github-actions --no-node-version --json +syncpack update --check +bun outdated --recursive +``` + +#### Opening the picker + +| Tool | Version | First run | Repeat run | +| :-- | :-- | --: | --: | +| inup | 1.8.7 (4103ffa) | 3.64 s ± 0.08
3.56–3.83 | **0.93 s** ± 0.07
0.85–1.04 | +| taze | 21.3.0 | 4.58 s ± 1.41
3.88–8.04 | 1.91 s ± 0.82
1.89–4.04 | +| syncpack | 15.3.3 | 3.55 s ± 1.93
3.45–9.62 | 3.51 s ± 0.64
3.42–5.51 | +| bun update -i | 1.4.3 | **1.60 s** ± 0.12
1.36–1.68 | 1.63 s ± 0.13
1.55–1.98 | +| npm-check-updates | — | not run: asks about one package.json at a time | | +| npm-check | — | not run: no workspace support | | + +Commands, run in the repository root in a 160×50 terminal: + +```sh +inup +taze major --interactive --recursive --include-locked --no-github-actions --no-node-version +syncpack update --interactive +bun update --interactive --recursive +``` + +### backstage/backstage + +[`backstage/backstage@76b0c7a`](https://github.com/backstage/backstage/tree/76b0c7a48ef737b1a46342c29269827715d70684) · yarn@4.18.0 · 269 package.json files · 591 dependencies + +Median, ± standard deviation, min–max, over 10 runs. Measured 21 Oct 2026 on GitHub Actions ubuntu24 20261018.339.1 · Linux 7.0.0-1017-azure · AMD EPYC 9V45 96-Core Processor · 4 CPUs · 16 GB · Node v24.22.0 · hyperfine 1.20.0 · [workflow run](https://github.com/donfear/inup/actions/runs/39625653309). + +#### Listing outdated dependencies + +| Tool | Version | First run | Repeat run | Updates found | +| :-- | :-- | --: | --: | --: | +| inup | 1.8.7 (4103ffa) | **3.51 s** ± 0.10
3.28–3.62 | 1.92 s ± 0.11
1.74–2.06 | 1925 | +| npm-check-updates | 23.1.1 | 26.9 s ± 1.54
25.24–29.93 | 28.3 s ± 1.39
25.97–30.68 | 1844 | +| taze | 21.3.0 | 8.33 s ± 0.88
7.22–10.48 | 3.97 s ± 0.11
3.86–4.16 | 1858 | +| syncpack | 15.3.3 | 4.54 s ± 0.28
3.84–4.69 | **0.49 s** ± 0.01
0.48–0.53 | 481 | +| npm-check | — | not run: no workspace support | | | +| yarn upgrade-interactive | — | not run: Yarn 2+ lists updates only in this interactive picker | | | + +Commands, run in the repository root: + +```sh +inup --json +ncu --jsonUpgraded --workspaces +taze major --recursive --include-locked --no-github-actions --no-node-version --json +syncpack update --check +``` + +#### Opening the picker + +| Tool | Version | First run | Repeat run | +| :-- | :-- | --: | --: | +| inup | 1.8.7 (4103ffa) | **3.52 s** ± 0.22
3.21–3.96 | **1.92 s** ± 0.15
1.74–2.13 | +| taze | 21.3.0 | 8.77 s ± 1.33
7.13–11.56 | 4.05 s ± 0.32
3.85–4.97 | +| syncpack | 15.3.3 | 4.02 s ± 0.21
3.86–4.49 | 4.22 s ± 0.16
3.84–4.32 | +| yarn upgrade-interactive | 4.18.0 | 5.88 s ± 0.10
5.74–6.05 | 2.15 s ± 0.08
2.10–2.37 | +| npm-check-updates | — | not run: asks about one package.json at a time | | +| npm-check | — | not run: no workspace support | | + +Commands, run in the repository root in a 160×50 terminal: + +```sh +inup +taze major --interactive --recursive --include-locked --no-github-actions --no-node-version +syncpack update --interactive +yarn upgrade-interactive +```