L'équipe de base de pnpm a publié une version alpha de la version 12 qui s'exécute sous la forme d'un binaire Rust natif, promettant des temps d'installation pouvant être d'un ordre de grandeur plus rapides que la version actuelle basée sur Node. Ce changement est important car les tâches de CI se termineront beaucoup plus rapidement.

Pourquoi cette réécriture est importante

pnpm se distingue déjà de npm et Yarn en utilisant un magasin adressable par contenu (content-addressable store) et une structure node_modules stricte. Pourtant, chaque commande lance toujours un processus Node.js, ce qui entraîne un coût de démarrage fixe avant même que tout travail sur les fichiers ne commence. En déplaçant le code de traitement intensif vers Rust, l'équipe élimine cette étape de bootstrap et exploite la capacité de Rust à exécuter de nombreuses opérations sur les fichiers en parallèle, ce qu'un seul thread JavaScript ne peut égaler.

Les chiffres derrière cette affirmation

Les benchmarks fournis par l'équipe pnpm montrent des baisses spectaculaires dans trois scénarios courants :

  • Installation à chaud (exécution répétée) : de 381 ms à 12 ms.
  • Installation sans cache : de 460 ms à 40 ms.
  • Installation propre (arbre de dépendances complet) : de 6,5 s à 2,2 s.

Une amélioration de 30× sur les installations à chaud se traduit directement par des tâches de CI plus rapides et des boucles de rétroaction plus serrées pour les développeurs.

Ce qui reste inchangé

La réécriture est un portage, pas une refonte. Tous les flags existants, le format du lockfile et la structure stricte de node_modules restent intacts. Les projets peuvent continuer à exécuter pnpm install exactement comme avant ; la seule différence visible devrait être la vitesse. Comme l'API publique ne change pas, le processus de migration est conçu pour être sans douleur.

Comment l'essayer dès maintenant

La transition se fait par étapes. Dans la version actuelle v11, les développeurs peuvent opter pour le backend Rust expérimental en activant le flag de backend « pacquet ». Dans la v12, le moteur Rust devient le mode par défaut pour la récupération des paquets et leur liaison dans l'espace de travail (workspace). La version alpha est publiée sous le tag next-12 ; elle n'est pas encore recommandée pour une utilisation en production, mais toute personne curieuse peut l'installer avec une seule commande et commencer ses tests.

Risques et contre-arguments

Même avec une surface d'API propre, un binaire alpha comporte les réserves habituelles : des tests limités et des risques de régressions dans des cas particuliers.

Une tendance plus large

Le mouvement de pnpm reflète une tendance croissante parmi les outils front-end. Des projets tels que Biome et Oxc ont également réécrit des composants de base dans des langages compilés afin de gagner des millisecondes dans les flux de travail des développeurs.