cargo-upgrade is a Cargo plugin-style tool for upgrading Rust dependencies, with a CLI surface inspired by pnpm upgrade.
cargo install cargo-upgradeOR
git clone https://github.com/clovu/cargo-upgrade.git
cd cargo-upgrade
cargo install --path .cargo upgrade # or cargo upgrade --latestStatus legend:
- Implemented: has runtime effect now
- Defined (not implemented): parsed by CLI but not wired to runtime yet
| Option | Description | Status |
|---|---|---|
[PACKAGE]... |
Upgrade only selected packages | Defined (not implemented) |
-r, --recursive |
Run recursively across workspace packages | Defined (not implemented) |
-L, --latest |
Ignore current version requirements | Defined (not implemented) |
-g, --global |
Upgrade globally installed crates | Defined (not implemented) |
--workspace |
Prefer workspace packages when available | Defined (not implemented) |
-P, --prod |
Only upgrade production dependencies | Defined (not implemented) |
-D, --dev |
Only upgrade development dependencies | Defined (not implemented) |
--no-optional |
Skip optional dependencies | Defined (not implemented) |
-i, --interactive |
Choose upgrades interactively | Defined (not implemented) |
--no-save |
Do not write updated requirements to manifest | Defined (not implemented) |
--filter <FILTER> |
Filter target workspace packages (repeatable) | Defined (not implemented) |
--depth <N> |
Set recursion depth for package traversal | Defined (not implemented) |
Current runtime behavior:
- Load manifest file.
- Collect dependencies from:
dependenciesdev-dependenciesbuild-dependencies
- Query crates.io for available versions.
- Choose the highest version that still matches the current semver requirement.
- Write updated requirements back to the manifest.
MIT License © 2026 Clover You