Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,34 @@ inup detects your package manager and finds dependencies across workspaces. Priv
Need to leave a package alone? Run `npx inup --ignore "react,react-dom"`, or save your rules in [`.inuprc`](docs/guide/configuration.md).

<!-- BENCHMARK:START -->
## 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.

<picture>
<source media="(prefers-color-scheme: dark)" srcset="docs/benchmark/speed-dark.svg">
<img alt="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" src="docs/benchmark/speed-light.svg">
</picture>

| First run | [expressjs/express](https://github.com/expressjs/express/tree/0dee2c52c7c873498f8ed7d8ee4ddd0a04d3ada8)<br><sub>1 package.json · 44 dependencies</sub> | [vuejs/core](https://github.com/vuejs/core/tree/65eae178383289b6a9f93505ab85017460f72395)<br><sub>22 package.json files · 69 dependencies</sub> | [TanStack/query](https://github.com/TanStack/query/tree/ce77be5e15c695df9d4d9122caf9256d334433ba)<br><sub>105 package.json files · 190 dependencies</sub> |
| :-- | --: | --: | --: |
| 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 |

<sub>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**.</sub>

[How it's measured, tool versions and exact commands](docs/guide/benchmarks.md)
<!-- BENCHMARK:END -->

## Let a release age before you take it
Expand Down
51 changes: 51 additions & 0 deletions docs/benchmark/speed-dark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
51 changes: 51 additions & 0 deletions docs/benchmark/speed-light.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
70 changes: 69 additions & 1 deletion docs/guide/benchmarks.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,5 +49,73 @@ Fixtures: `express`, `vue-core`, `tanstack-query`. Times from your machine and n
## Results

<!-- BENCHMARK:START -->
_No results yet. They appear here after the Benchmark workflow runs._
### expressjs/express

[`expressjs/express@0dee2c5`](https://github.com/expressjs/express/tree/0dee2c52c7c873498f8ed7d8ee4ddd0a04d3ada8) · npm · 1 package.json · 44 dependencies

| Tool | Version | First run | Repeat run | Updates found |
| :-- | :-- | --: | --: | --: |
| inup | 1.8.7 (77f554e) | **0.35 s** ± 0.01<br><sub>0.34–0.38</sub> | 0.31 s ± 0.01<br><sub>0.30–0.34</sub> | 22 |
| npm-check-updates | 23.1.1 | 0.66 s ± 0.03<br><sub>0.63–0.72</sub> | 0.69 s ± 0.03<br><sub>0.65–0.73</sub> | 21 |
| taze | 21.3.0 | 0.65 s ± 0.55<br><sub>0.48–2.30</sub> | **0.21 s** ± 0.00<br><sub>0.21–0.22</sub> | 21 |
| npm-check | 6.0.1 | 1.07 s ± 0.03<br><sub>1.04–1.15</sub> | 1.09 s ± 0.04<br><sub>1.05–1.16</sub> | — |
| npm outdated | 11.19.1 | 0.90 s ± 0.01<br><sub>0.89–0.93</sub> | 0.69 s ± 0.01<br><sub>0.67–0.70</sub> | 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).

Commands, run in the repository root:

```sh
inup --json
ncu --jsonUpgraded
taze major --include-locked --no-github-actions --no-node-version --json
npm-check --skip-unused
npm outdated --json
```

### vuejs/core

[`vuejs/core@65eae17`](https://github.com/vuejs/core/tree/65eae178383289b6a9f93505ab85017460f72395) · pnpm@12.11.2 · 22 package.json files · 69 dependencies

| Tool | Version | First run | Repeat run | Updates found |
| :-- | :-- | --: | --: | --: |
| inup | 1.8.7 (77f554e) | **0.95 s** ± 0.02<br><sub>0.91–0.97</sub> | 0.44 s ± 0.02<br><sub>0.43–0.51</sub> | 26 |
| npm-check-updates | 23.1.1 | 4.36 s ± 0.19<br><sub>4.21–4.76</sub> | 4.37 s ± 0.26<br><sub>4.21–4.96</sub> | 25 |
| taze | 21.3.0 | 1.46 s ± 0.63<br><sub>1.10–2.83</sub> | 0.53 s ± 0.01<br><sub>0.52–0.55</sub> | 25 |
| pnpm outdated | 12.11.2 | 1.45 s ± 0.18<br><sub>1.42–1.96</sub> | **0.21 s** ± 0.01<br><sub>0.20–0.22</sub> | 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).

Commands, run in the repository root:

```sh
inup --json
ncu --jsonUpgraded --workspaces
taze major --recursive --include-locked --no-github-actions --no-node-version --json
pnpm outdated --recursive --format json
```

### TanStack/query

[`TanStack/query@ce77be5`](https://github.com/TanStack/query/tree/ce77be5e15c695df9d4d9122caf9256d334433ba) · pnpm@12.4.2 · 105 package.json files · 190 dependencies

| Tool | Version | First run | Repeat run | Updates found |
| :-- | :-- | --: | --: | --: |
| inup | 1.8.7 (77f554e) | **2.68 s** ± 0.04<br><sub>2.62–2.74</sub> | **0.64 s** ± 0.08<br><sub>0.61–0.90</sub> | 606 |
| npm-check-updates | 23.1.1 | 12.4 s ± 0.86<br><sub>11.50–14.49</sub> | 12.1 s ± 1.10<br><sub>11.18–15.14</sub> | 588 |
| taze | 21.3.0 | 9.84 s ± 0.70<br><sub>8.61–10.70</sub> | 6.67 s ± 0.07<br><sub>6.59–6.85</sub> | 601 |
| pnpm outdated | 12.4.2 | 2.99 s ± 0.08<br><sub>2.80–3.08</sub> | 4.70 s ± 0.09<br><sub>4.62–4.90</sub> | 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).

Commands, run in the repository root:

```sh
inup --json
ncu --jsonUpgraded --workspaces
taze major --recursive --include-locked --no-github-actions --no-node-version --json
pnpm outdated --recursive --format json
```
<!-- BENCHMARK:END -->
Loading