Đội ngũ cốt lõi của pnpm đã phát hành một bản build alpha của phiên bản 12 chạy dưới dạng tệp thực thi (binary) Rust gốc, hứa hẹn thời gian cài đặt có thể nhanh hơn gấp nhiều lần so với phiên bản dựa trên Node hiện tại. Thay đổi này rất quan trọng vì các tác vụ CI sẽ hoàn thành nhanh hơn nhiều.

Tại sao việc viết lại mã nguồn lại quan trọng

pnpm vốn đã tạo nên sự khác biệt so với npm và Yarn bằng cách sử dụng kho lưu trữ định danh theo nội dung (content-addressable store) và cấu trúc node_modules nghiêm ngặt. Tuy nhiên, mọi câu lệnh vẫn phải khởi động một tiến trình Node.js, gây ra một chi phí khởi động cố định trước khi bất kỳ thao tác tệp nào bắt đầu. Bằng cách chuyển các phần mã xử lý nặng sang Rust, đội ngũ đã loại bỏ bước khởi động đó và tận dụng khả năng chạy song song nhiều thao tác tệp của Rust, điều mà một luồng JavaScript đơn lẻ không thể sánh kịp.

Những con số đằng sau tuyên bố này

Các kết quả đo kiểm (benchmarks) do đội ngũ pnpm cung cấp cho thấy sự sụt giảm đáng kể trong ba kịch bản phổ biến:

  • Warm install (chạy lại): từ 381 ms xuống 12 ms.
  • No-cache install (không dùng cache): từ 460 ms xuống 40 ms.
  • Clean install (toàn bộ cây phụ thuộc): từ 6.5 s xuống 2.2 s.

Sự cải thiện gấp 30 lần đối với các bản cài đặt warm install sẽ trực tiếp giúp các tác vụ CI nhanh hơn và rút ngắn vòng lặp phản hồi cho nhà phát triển.

Những gì vẫn giữ nguyên

Việc viết lại này là một bản chuyển đổi (port), không phải là thiết kế lại. Tất cả các cờ (flags) hiện có, định dạng lockfile và cấu trúc node_modules nghiêm ngặt vẫn được giữ nguyên. Các dự án có thể tiếp tục chạy pnpm install chính xác như trước; sự khác biệt duy nhất có thể nhận thấy là tốc độ. Vì public API không thay đổi, lộ trình chuyển đổi được dự kiến sẽ diễn ra một cách suôn sẻ.

Cách dùng thử ngay bây giờ

Quá trình chuyển đổi được thực hiện theo từng giai đoạn. Trong dòng v11 hiện tại, các nhà phát triển có thể chọn sử dụng backend Rust thử nghiệm bằng cách bật cờ backend “pacquet”. Trong v12, engine Rust sẽ trở thành mặc định để tải các gói và liên kết chúng vào workspace. Bản phát hành alpha được xuất bản dưới thẻ next-12; nó chưa được khuyến khích sử dụng cho môi trường production, nhưng bất kỳ ai tò mò đều có thể cài đặt chỉ với một câu lệnh duy nhất và bắt đầu thử nghiệm.

Rủi ro và các lưu ý

Ngay cả với một bề mặt API sạch sẽ, một bản binary alpha vẫn đi kèm với những cảnh báo thông thường: việc thử nghiệm còn hạn chế và khả năng xảy ra lỗi hồi quy (regression) trong các trường hợp biên (edge-case).

Xu hướng rộng lớn hơn

Bước đi của pnpm phản ánh một mô hình đang phát triển trong các công cụ front-end. Các dự án như Biome và Oxc cũng đã viết lại các thành phần cốt lõi bằng các ngôn ngữ biên dịch để cắt giảm từng mili giây trong quy trình làm việc của nhà phát triển.