Il team core di pnpm ha rilasciato una build alpha della versione 12 che gira come binario nativo in Rust, promettendo tempi di installazione che possono essere di un ordine di grandezza più veloci rispetto all'attuale versione basata su Node. Il cambiamento è importante perché i job di CI finiranno molto più velocemente.

Perché la riscrittura è importante

pnpm si distingue già da npm e Yarn grazie all'uso di un content-addressable store e di un layout node_modules rigoroso. Tuttavia, ogni comando avvia ancora un processo Node.js, comportando un costo di avvio fisso prima che inizi qualsiasi operazione sui file. Spostando il codice più pesante in Rust, il team elimina quel passaggio di bootstrap e sfrutta la capacità di Rust di eseguire molte operazioni sui file in parallelo, qualcosa che un singolo thread JavaScript non può eguagliare.

I numeri dietro l'affermazione

I benchmark forniti dal team di pnpm mostrano cali drastici in tre scenari comuni:

  • Warm install (esecuzione ripetuta): da 381 ms a 12 ms.
  • No-cache install: da 460 ms a 40 ms.
  • Clean install (albero delle dipendenze completo): da 6,5 s a 2,2 s.

Un miglioramento di 30× nelle installazioni "warm" si traduce direttamente in job di CI più veloci e cicli di feedback più rapidi per gli sviluppatori.

Cosa rimane invariato

La riscrittura è un porting, non un redesign. Tutte le flag esistenti, il formato del lockfile e la struttura rigorosa di node_modules rimangono invariati. I progetti possono continuare a eseguire pnpm install esattamente come prima; l'unica differenza visibile dovrebbe essere la velocità. Poiché la API pubblica non cambia, il percorso di migrazione è pensato per essere indolore.

Come provarlo subito

La transizione è graduale. Nell'attuale linea v11, gli sviluppatori possono scegliere il backend sperimentale in Rust abilitando la flag del backend “pacquet”. Nella v12, il motore Rust diventa il predefinito per il recupero dei pacchetti e il loro collegamento al workspace. La release alpha è pubblicata sotto il tag next-12; non è ancora raccomandata per l'uso in produzione, ma chiunque sia curioso può installarla con un singolo comando e iniziare a testarla.

Rischi e controargomentazioni

Anche con una superficie API pulita, un binario alpha comporta le solite avvertenze: test limitati e potenziali regressioni in casi limite.

Il trend più ampio

La mossa di pnpm rispecchia un pattern crescente tra gli strumenti di front-end. Progetti come Biome e Oxc hanno anch'essi riscritto i componenti core in linguaggi compilati per risparmiare millisecondi nei workflow degli sviluppatori.