JavaScript installer pnpm recast in Rust because ECMAScript can’t keep up
The JavaScript package manager pnpm has released version 12, a complete rewrite of its core in Rust that cuts installation times by up to 90 percent. Despite the rewrite, lead maintainer Zoltan Kochan says the upgrade is fully backward-compatible, preserving pnpm 11's commands, flags, settings and lockfile format, making it relevant to the many developers who rely on pnpm for managing large JavaScript monorepos.
In the project's own benchmarks, pnpm 12 installed a sample uncached package in 5.19 seconds versus 8.22 seconds for pnpm 11 and 47.7 seconds for npm; pairing it with a new Rust-built registry server called pnpr cut this further to 3.37 seconds. The new core, developed since April, is now 65.9 percent Rust and 33.5 percent TypeScript, removing overhead caused by routing filesystem work through Node.js. Pnpm, created in 2016 as a faster alternative to npm, was used by around 38 percent of developers surveyed for monorepo work in 2025, and its rewrite follows similar Rust-driven speed-ups in tools such as Bun, Tailwind CSS and Vite.
In short
- pnpm 12 rewritten in Rust, up to 90% faster installs
- Fully backward-compatible with pnpm 11 commands and lockfiles
- Part of a wider trend of JavaScript tools moving to Rust
Steelman: both sides, in good faith
The strongest fair case each way — we don't pick a winner.
The case for
Rewriting pnpm’s core in Rust could make a common development task substantially faster, especially for teams managing large monorepos where installation delays accumulate. Preserving existing commands, settings and lockfiles would let developers gain those improvements without having to change established workflows, while the rewrite may help pnpm remain competitive as software projects grow.
The case against
A near-total rewrite of a widely used package manager introduces maintenance and reliability risks, even when backward compatibility is intended: subtle differences or bugs could disrupt developers’ builds and workflows. The headline’s claim that ECMAScript cannot keep up may also overstate the case, since the reported benchmarks compare particular implementations and configurations, and the benefits may vary across projects; a mixed Rust and TypeScript codebase also adds complexity.
Explained simply
JavaScript projects rely on package managers to download and organise the libraries their code needs. pnpm, launched in 2016 as an alternative to npm, is used by developers working on large projects where many related applications share code, known as monorepos.
pnpm’s core has been built mainly in TypeScript, a language that runs through Node.js, which also handles filesystem tasks such as reading and writing files. Rust is a different programming language often used to build fast system tools. The project says moving much of its core to Rust reduces the work needed to manage those filesystem operations.
The change matters to teams that install and update large numbers of dependencies, since waiting for those tasks can slow development. pnpm is one of several JavaScript tools whose developers have adopted Rust; the wider shift reflects efforts to improve performance while keeping tools familiar to their users.