pnpm-ன் முக்கியக் குழு பதிப்பு 12-ன் ஆல்பா (alpha) பதிப்பை வெளியிட்டுள்ளது. இது ஒரு நேட்டிவ் Rust பைனரியாக (native Rust binary) இயங்குகிறது, மேலும் தற்போதைய Node அடிப்படையிலான பதிப்பை விடப் பல மடங்கு வேகமான இன்ஸ்டால் நேரத்தை இது உறுதி செய்கிறது. இந்த மாற்றம் முக்கியமானது, ஏனெனில் CI வேலைகள் மிக விரைவாக முடிவடையும்.
இந்த மறுவடிவமைப்பு ஏன் முக்கியமானது
pnpm ஏற்கனவே content-addressable store மற்றும் கண்டிப்பான node_modules அமைப்பைப் பயன்படுத்துவதன் மூலம் npm மற்றும் Yarn ஆகியவற்றிலிருந்து தன்னை வேறுபடுத்திக் காட்டுகிறது. இருப்பினும், ஒவ்வொரு கட்டளையும் (command) இன்னும் ஒரு Node.js செயல்முறையைத் தொடங்குகிறது, இது எந்தவொரு கோப்புப் பணியும் தொடங்குவதற்கு முன்பே ஒரு குறிப்பிட்ட தொடக்கச் செலவை (startup cost) ஏற்படுத்துகிறது. கடினமான பணிகளைச் செய்யும் குறியீடுகளை (heavy-lifting code) Rust-க்கு மாற்றுவதன் மூலம், அந்தத் தொடக்கப் படிநிலையை (bootstrap step) குழு நீக்குகிறது மற்றும் பல கோப்புச் செயல்பாடுகளை இணையாக (parallel) இயக்கும் Rust-ன் திறனைப் பயன்படுத்துகிறது; இதை ஒரு ஒற்றை JavaScript த்ரெட்டினால் (thread) ஈடு செய்ய முடியாது.
இந்தத் தகவலின் பின்னணியில் உள்ள எண்கள்
pnpm குழு வழங்கிய பெஞ்ச்மார்க் (Benchmarks) முடிவுகள் மூன்று பொதுவான சூழல்களில் வியக்கத்தக்கக் குறைவைக் காட்டுகின்றன:
- Warm install (மீண்டும் இயக்குதல்): 381 ms-லிருந்து 12 ms வரை.
- No-cache install: 460 ms-லிருந்து 40 ms வரை.
- Clean install (முழுமையான dependency tree): 6.5 s-லிருந்து 2.2 s வரை.
Warm installs-ல் கிடைக்கும் 30× முன்னேற்றம், நேரடியாக வேகமான CI வேலைகளுக்கும் மற்றும் டெவலப்பர்களுக்கான விரைவான பின்னூட்ட சுழற்சிகளுக்கும் (feedback loops) வழிவகுக்கும்.
மாறாதவை
இந்த மறுவடிவமைப்பு ஒரு போர்ட் (port) மட்டுமே, மறுவடிவமைப்பு (redesign) அல்ல. தற்போதுள்ள அனைத்து ஃபிளாக்ஸ் (flags), lockfile வடிவம் மற்றும் கண்டிப்பான node_modules அமைப்பு ஆகியவை மாற்றப்படாமல் அப்படியே இருக்கும். திட்டங்கள் (Projects) முன்பைப் போலவே pnpm install என்பதைத் தொடர்ந்து இயக்க முடியும்; வேகமே இதில் காணப்படும் ஒரே மாற்றமாக இருக்கும். பொது API மாறாததால், இடமாற்றப் பாதை (migration path) சிரமமற்றதாக இருக்கும்.
இப்போது இதை எப்படி முயற்சிப்பது
இந்த மாற்றம் படிப்படியாக நடைபெறுகிறது. தற்போதைய v11 பதிப்பில், டெவலப்பர்கள் “pacquet” backend flag-ஐ இயக்குவதன் மூலம் சோதனை ரீதியிலான Rust backend-ஐப் பயன்படுத்தலாம். v12-இல், பேக்கேஜ்களைப் பெறுவதற்கும் (fetching packages) அவற்றை workspace-உடன் இணைப்பதற்கும் (linking) Rust engine இயல்பானதாக (default) மாறும். இந்த ஆல்பா வெளியீடு next-12 டேக்-கின் கீழ் வெளியிடப்பட்டுள்ளது; இது இன்னும் தயாரிப்புப் பயன்பாட்டிற்கு (production use) பரிந்துரைக்கப்படவில்லை, ஆனால் ஆர்வமுள்ள எவரும் ஒரே கட்டளையின் மூலம் இதை நிறுவி சோதனையைத் தொடங்கலாம்.
அபாயங்கள் மற்றும் மாற்றுக்கருத்துகள்
ஒரு தெளிவான API இருந்தபோதிலும், ஓர் ஆல்பா பைனரி வழக்கமான எச்சரிக்கைகளைக் கொண்டுள்ளது: வரையறுக்கப்பட்ட சோதனை மற்றும் சாத்தியமான எட்ஜ்-கேஸ் பின்னடைவுகள் (edge-case regressions).
பரந்த போக்கு
pnpm-ன் இந்த நகர்வு, முன்முனை (front-end) கருவிகளிடையே வளர்ந்து வரும் ஒரு போக்கைப் பிரதிபலிக்கிறது. Biome மற்றும் Oxc போன்ற திட்டங்களும் டெவலப்பர்களின் பணிப்பாய்விலிருந்து (workflows) மில்லி விநாடிகளைக் குறைக்க அவற்றின் முக்கியக் கூறுகளை கம்பைல் செய்யப்பட்ட மொழிகளில் (compiled languages) மீண்டும் எழுதியுள்ளன.
