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 backend પસંદ કરી શકો છો; 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 runner) શરૂ કરવું જોઈએ, pacquet backend સક્ષમ કરવું જોઈએ, અને વર્તમાન સેટઅપ સામે બિલ્ડ સમયની સરખામણી કરવી જોઈએ.
વ્યાપક વલણ
pnpm નું આ પગલું કમ્પાઈલ્ડ લેંગ્વેજ તરફના ટૂલિંગ માઈગ્રેશનના તરંગને પ્રતિબિંબિત કરે છે. Biome, Oxc અને Deno જેવા પ્રોજેક્ટ્સે ડેવલપર વર્કફ્લોમાંથી લેટન્સી ઘટાડવા માટે પરફોર્મન્સ-ક્રિટિકલ ઘટકોને Rust અથવા Go માં ફરીથી બનાવ્યા છે.
આગળ શું જોવું
- Stability milestones: રિલીઝ પર નજર રાખવાથી ખબર પડશે કે તે પ્રોડક્શનમાં ઉપયોગ માટે ક્યારે સુરક્ષિત છે.
- Feature parity: વપરાશકર્તાઓએ ગેપ્સ (gaps) માટે ચેન્જલોગ પર નજર રાખવી જોઈએ.
ટૂંકમાં: pnpm નું Rust રીરાઈટ પહેલેથી જ ઝડપી પેકેજ મેનેજરને રિપીટ ઇન્સ્ટોલ માટે લગભગ ત્વરિત (instantaneous) બનાવી દે છે, અને ફ્રેશ ઇન્સ્ટોલ માટે અડધાથી વધુ સમય ઘટાડે છે. જે ટીમો દરરોજ રાત્રે ડિપેન્ડન્સી રિઝોલ્યુશનમાં મિનિટો વિતાવે છે, તેમના માટે આ અપગ્રેડ વર્કફ્લોમાં મોટા ફેરફાર કર્યા વિના CI ખર્ચમાં નોંધપાત્ર ઘટાડાનું વચન આપે છે.
