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 کو ایک ہی تھریڈ کے ذریعے فائل سسٹم کے بڑے پیمانے پر ہونے والے کاموں کو سنبھالنے کی اجازت دے رہی ہے۔
یہ ری رائٹ ایک پورٹ (port) ہے، ری ڈیزائن نہیں ہے۔ تمام flags، lockfile فارمیٹس، اور جانا پہچانا node_modules لے آؤٹ بالکل ویسا ہی رہے گا، اس لیے موجودہ اسکرپٹس اور ورک فلو میں کسی تبدیلی کی ضرورت نہیں ہے۔ v11 میں آپ پہلے ہی pacquet بیک اینڈ کا انتخاب کر سکتے ہیں؛ v12 اسے fetching اور linking کے لیے ڈیفالٹ بنا دے گا۔
پیمائش کے قابل کارکردگی میں اضافہ
مینٹینرز کی طرف سے فراہم کردہ بینچ مارکس درج ذیل دکھاتے ہیں:
- Warm install (کیش کے ساتھ دوبارہ چلانا): 381 ms → 12 ms، یعنی 30 گنا بہتری۔
- 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) رنر چلانا چاہیے، pacquet بیک اینڈ کو فعال کرنا چاہیے، اور موجودہ سیٹ اپ کے مقابلے میں بلڈ ٹائم کا موازنہ کرنا چاہیے۔
وسیع تر رجحان
pnpm کا یہ قدم کمپائلڈ زبانوں (compiled languages) کی طرف ٹولنگ کی منتقلی کی لہر کی عکاسی کرتا ہے۔ Biome، Oxc، اور Deno جیسے پروجیکٹس نے ڈویلپر ورک فلو سے لیٹنسی (latency) کو کم کرنے کے لیے اپنے کارکردگی کے حساس اجزاء کو Rust یا Go میں دوبارہ بنایا ہے۔
آگے کیا دیکھنا ہے
- Stability milestones: ریلیزز کی نگرانی سے پتہ چلے گا کہ پروڈکشن کے استعمال کے لیے کب محفوظ ہے۔
- Feature parity: صارفین کو کمیوں کے بارے میں جاننے کے لیے چینج لاگ (changelog) پر نظر رکھنی چاہیے۔
خلاصہ یہ کہ: pnpm کا Rust ری رائٹ ایک پہلے سے تیز پیکیج مینیجر کو بار بار ہونے والی انسٹالیشنز کے لیے عملی طور پر فوری (instantaneous) بنا دیتا ہے، اور یہ نئی انسٹالیشنز کے لیے وقت کو آدھے سے زیادہ کم کر دیتا ہے۔ ان ٹیموں کے لیے جو ہر رات ڈیپینڈنسی ریزولوشن (dependency resolution) پر منٹ گزارتی ہیں، یہ اپ گریڈ ورک فلو میں بڑی تبدیلی کے بغیر CI اخراجات میں نمایاں کمی کا وعدہ کرتا ہے۔
