Go back

pnpm 12 is out, powered by Rust πŸš€

pnpm 12 moves its installation engine to Rust, with faster startup and installs, deterministic cycles and breaking changes.

pnpm 12 is out, powered by Rust πŸš€

The package manager known for speed has become even faster. In stable pnpm 12, the installation engine has been fully moved from TypeScript/Node.js to Rust.

This is not an interface redesign, but a 1:1 port. Commands, flags, settings, lockfile format and the node_modules structure remain unchanged. You simply upgrade and get a speed boost without painful migrations.

Main changes:

  • Instant cold startup: pnpm ships as a native binary for your platform, without the overhead of starting the Node.js runtime.
  • Up to 30Γ— faster β€œwarm” installs: Rechecking and linking already cached dependencies dropped from around 470 ms to 15 ms. Cold installation in monorepositories became 2–3 times faster.
  • Deterministic circular dependencies: pnpm 12 handles package cycles strictly and natively. Lockfiles are now byte-for-byte identical regardless of traversal order, and peer dependency resolution has become 2–3 times faster with lower memory consumption (-25%).
  • Project-aware global bins: Global binaries (node, deno, bun) can now automatically adapt to the version pinned in a particular project.

Breaking Changes: Deprecated CLI flags (such as --prefer-offline) have been removed, unknown keys in pnpm-workspace.yaml are no longer silently ignored, and minimum OS requirements have been raised.

You can upgrade with pnpm self-update or npm i -g pnpm@12.

Rewriting pnpm in Rust turned out to be faster than migrating to ESM

joked Zoltan Kochan

Read the post on Socket

Read the post on the official blog

Have you tried version 12 on your monorepos yet?

Copied