Основна команда pnpm випустила альфа-збірку 12-ї версії, яка працює як нативний бінарний файл Rust, обіцяючи час встановлення, що може бути на порядок швидшим за поточну версію на базі Node.js. Ця зміна є важливою, оскільки завдання CI завершуватимуться набагато швидше.
Чому переписування має значення
pnpm вже відрізняється від npm та Yarn завдяки використанню сховища з адресацією за вмістом (content-addressable store) та суворій структурі node_modules. Проте кожна команда все ще запускає процес Node.js, що створює фіксовані витрати на запуск ще до початку будь-якої роботи з файлами. Переносячи найскладнішу частину коду на Rust, команда усуває цей етап ініціалізації та використовує здатність Rust виконувати багато файлових операцій паралельно — те, з чим не може зрівнятися один потік JavaScript.
Цифри, що стоять за цими твердженнями
Бенчмарки, надані командою pnpm, демонструють різке скорочення часу у трьох типових сценаріях:
- Warm install (повторний запуск): з 381 мс до 12 мс.
- No-cache install (без кешу): з 460 мс до 40 мс.
- Clean install (повне дерево залежностей): з 6,5 с до 2,2 с.
30-кратне покращення швидкості при warm install безпосередньо означає швидше виконання завдань CI та коротший цикл зворотного зв'язку для розробників.
Що залишиться незмінним
Переписування — це порт, а не редизайн. Усі існуючі прапорці, формат lockfile та сувора структура node_modules залишаються без змін. Проєкти можуть продовжувати виконувати pnpm install точно так само, як і раніше; єдиною помітною різницею має бути швидкість. Оскільки публічний API не змінюється, процес міграції має бути безболісним.
Як спробувати це зараз
Перехід відбувається поетапно. У поточній версії v11 розробники можуть спробувати експериментальний бекенд на Rust, увімкнувши прапорець “pacquet” backend. У v12 рушій Rust стане стандартним для отримання пакетів та їхнього зв'язування (linking) у робочому просторі. Альфа-реліз опубліковано під тегом next-12; він ще не рекомендований для використання у продакшені, але кожен охочий може встановити його однією командою та розпочати тестування.
Ризики та зауваження
Навіть із чистим API, альфа-бінарний файл несе звичайні ризики: обмежене тестування та потенційні регресії у граничних випадках.
Ширша тенденція
Крок pnpm відображає зростаючу тенденцію серед інструментів фронтенд-розробки. Такі проєкти, як Biome та Oxc, також переписали свої основні компоненти мовами з компіляцією, щоб скоротити час виконання робочих процесів розробників на кілька мілісекунд.
