🔧pnpm 12 Stable: Rust Rewrite, Faster Resolution
pnpm 12 is here, but it's not a drop-in upgrade
TL;DR
pnpm 12 is now stable, a full Rust rewrite, but it doesn't auto-migrate from pnpm 11. Commands, flags, and lockfile formats carry over, but you'll need to install it manually from the next-12 tag.
pnpm 12 is now stable, a complete rewrite in Rust. However, it doesn't auto-migrate from pnpm 11, so you'll need to install it manually from the next-12 tag. This version introduces significant changes like Git dependencies becoming identities and dependency cycles being broken canonically during peer resolution, making lockfiles a pure function of the dependency graph. On large cycle-heavy workspaces, peer resolution is 2-3 times faster and uses 25% less memory, producing smaller lockfiles. If you're dealing with complex dependency graphs, this update could save you time and resources. pnpm 12 also supports project-aware global bins and provisions other package managers like npm, Yarn, and Bun.

Key Points
pnpm 12 is a complete Rust rewrite, no auto-migration from pnpm 11
Git dependencies are now identities, not transport choices
Peer resolution on large workspaces is 2-3× faster, uses 25% less memory
Lockfiles are now a pure function of the dependency graph
Supports project-aware global bins and provisions other package managers
Why It Matters
If you're managing complex dependency graphs in pnpm, the 2-3× faster resolution and 25% less memory usage in pnpm 12 can significantly speed up your build times. However, the lack of auto-migration means you'll need to manually update and test your setup. The new Git dependency identity system and project-aware global bins also offer more control and flexibility, but may require adjustments to your workflow.
Frequently Asked Questions
Why does this matter?
If you're managing complex dependency graphs in pnpm, the 2-3× faster resolution and 25% less memory usage in pnpm 12 can significantly speed up your build times. However, the lack of auto-migration means you'll need to manually update and test your setup. The new Git dependency identity system and project-aware global bins also offer more control and flexibility, but may require adjustments to your workflow.
What happened?
pnpm 12 is now stable, a full Rust rewrite, but it doesn't auto-migrate from pnpm 11. Commands, flags, and lockfile formats carry over, but you'll need to install it manually from the next-12 tag.
Comments
Be the first to comment
Enjoyed this article?
Get it daily. 7am. Free. Reads in 5 minutes.
Join 3,339 builders reading daily.