pnpm ची कोअर टीम v12 साठी Rust-आधारित रिराईट (rewrite) आणत आहे, ज्यामुळे warm install वेळ 381 ms वरून 12 ms पर्यंत आणि clean install वेळ 6.5 s वरून 2.2 s पर्यंत कमी होईल. ही वेगवान सुधारणा प्रामुख्याने अशा डेव्हलपर्ससाठी महत्त्वाची आहे जे continuous-integration (CI) पाइपलाईन्समध्ये पॅकेजेस चालवतात, जिथे प्रत्येक सेकंद महत्त्वाचा असतो.

हा रिराईट आता का महत्त्वाचा आहे

pnpm वेगाच्या बाबतीत आधीच अनेक प्रतिस्पर्ध्यांना मागे टाकते, परंतु ते Node.js वर चालते, ज्यामुळे प्रत्येक वेळी कमांड सुरू होताना काही स्टार्टअप खर्च (startup cost) येतो. हा खर्च CI जॉब्समध्ये लक्षणीय विलंब म्हणून दिसून येतो, जे वारंवार dependencies मिळवतात आणि लिंक करतात. मुख्य कामे एका नेटिव्ह Rust बायनरीमध्ये—ज्याचे कोडनेम pacquet आहे—हलवून, टीम Node.js bootstrap काढून टाकते आणि Rust ला एका सिंगल थ्रेडद्वारे मोठ्या प्रमाणावरील file-system हालचाली हाताळण्याची परवानगी देते.

हा रिराईट एक पोर्ट (port) आहे, रिडिझाइन (redesign) नाही. सर्व flags, lockfile formats आणि परिचित node_modules लेआउट तंतोतंत सारखेच राहतील, त्यामुळे सध्याच्या स्क्रिप्ट्स आणि वर्कफ्लोमध्ये कोणताही बदल करण्याची गरज नाही. v11 मध्ये तुम्ही आधीच pacquet बॅकएंड निवडू शकता; v12 मध्ये fetching आणि linking साठी हे डिफॉल्ट असेल.

मोजता येण्याजोगे परफॉर्मन्स फायदे

मेंटेनर्सनी दिलेल्या बेंचमार्कनुसार:

  • Warm install (कॅशसह पुन्हा रन करणे): 381 ms → 12 ms, म्हणजेच ३० पटीने सुधारणा.
  • Clean install (कॅशशिवाय): 6.5 s → 2.2 s, म्हणजेच अर्ध्याहून अधिक वेळ वाचतो.

जोखीम आणि तडजोड

Rust इंजिन अजूनही अल्फा (alpha) स्टेजमध्ये आहे. जोपर्यंत ते प्री-रिलीझ स्टेजमधून बाहेर पडत नाही, तोपर्यंत टीम v12 प्रोडक्शनमध्ये वापरू नये असा सल्ला देते.

आजच हे कसे वापरून पाहाल

डेव्हलपर्स pnpm self-update next-12 चालवून नवीन बॅकएंड टेस्ट करू शकतात, जे लेटेस्ट प्री-रिलीझ बायनरी डाउनलोड करते. ही कमांड प्रोजेक्टचे pnpm-lock.yaml किंवा node_modules लेआउट न बदलता JavaScript इंजिनच्या जागी Rust इंजिन वापरते. ज्या टीम्सना त्यांच्या CI पाइपलाईन्सवर होणारा परिणाम तपासायचा आहे, त्यांनी एक डिस्पोजेबल रनर (disposable runner) सुरू करावा, pacquet बॅकएंड सक्षम करावे आणि सध्याच्या सेटअपच्या तुलनेत बिल्ड वेळेची तुलना करावी.

व्यापक कल

pnpm चा हा निर्णय कंपाईल्ड लँग्वेजेसकडे (compiled languages) होणाऱ्या टूलिंग मायग्रेशनच्या लाटेचे प्रतिबिंब आहे. Biome, Oxc आणि Deno सारख्या प्रकल्पांनी डेव्हलपर वर्कफ्लोमधील लॅटन्सी (latency) कमी करण्यासाठी त्यांचे परफॉर्मन्स-क्रिटिकल घटक Rust किंवा Go मध्ये पुन्हा तयार केले आहेत.

पुढे काय पाहावे

  • स्टॅबिलिटी माईलस्टोन्स (Stability milestones): रिलीजवर लक्ष ठेवल्यास ते प्रोडक्शन वापरासाठी कधी सुरक्षित असेल हे समजेल.
  • फीचर पॅरिटी (Feature parity): वापरकर्त्यांनी काही त्रुटी किंवा फरक आहेत का हे पाहण्यासाठी चँजलॉगवर (changelog) लक्ष ठेवावे.

थोडक्यात सांगायचे तर: pnpm चा Rust रिराईट आधीच वेगवान असलेल्या पॅकेज मॅनेजरला वारंवार होणाऱ्या इन्स्टॉल्ससाठी जवळजवळ तात्काळ (instantaneous) बनवतो आणि नवीन इन्स्टॉल्ससाठी लागणारा वेळ अर्ध्याहून अधिक कमी करतो. ज्या टीम्स दररोज रात्री डिपेंडन्सी रिझोल्यूशनसाठी (dependency resolution) अनेक मिनिटे खर्च करतात, त्यांच्यासाठी हा अपग्रेड वर्कफ्लोमध्ये कोणताही मोठा बदल न करता CI खर्च कमी करण्याचे आश्वासन देतो.