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 jobs ਵਿੱਚ ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਦੇਰੀ ਵਜੋਂ ਦਿਖਾਈ ਦਿੰਦੀ ਹੈ ਜੋ ਵਾਰ-ਵਾਰ dependencies ਨੂੰ fetch ਅਤੇ link ਕਰਦੇ ਹਨ। ਮੁੱਖ ਕੰਮ ਨੂੰ ਇੱਕ native Rust binary—ਜਿਸਦਾ ਕੋਡਨੇਮ pacquet ਹੈ—ਵਿੱਚ ਤਬਦੀਲ ਕਰਕੇ, ਟੀਮ Node.js bootstrap ਨੂੰ ਖਤਮ ਕਰ ਦਿੰਦੀ ਹੈ ਅਤੇ Rust ਨੂੰ ਇੱਕ ਸਿੰਗਲ thread ਨਾਲ ਵੱਡੇ file-system churn ਨੂੰ ਸੰਭਾਲਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ।
ਇਹ ਰੀ-ਰਾਈਟ ਇੱਕ port ਹੈ, redesign ਨਹੀਂ। ਸਾਰੇ flags, lockfile formats, ਅਤੇ ਜਾਣੇ-ਪਛਾਣੇ node_modules layout ਬਿਲਕੁਲ ਉਵੇਂ ਹੀ ਰਹਿੰਦੇ ਹਨ, ਇਸ ਲਈ ਮੌਜੂਦਾ scripts ਅਤੇ workflows ਵਿੱਚ ਕਿਸੇ ਤਬਦੀਲੀ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ। v11 ਵਿੱਚ ਤੁਸੀਂ ਪਹਿਲਾਂ ਹੀ pacquet backend ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ; v12 ਇਸਨੂੰ fetching ਅਤੇ linking ਲਈ default ਬਣਾ ਦਿੰਦਾ ਹੈ।
ਮਾਪਣਯੋਗ ਪ੍ਰਦਰਸ਼ਨ ਵਿੱਚ ਸੁਧਾਰ
Maintainers ਦੁਆਰਾ ਦਿੱਤੇ ਗਏ benchmarks ਦਿਖਾਉਂਦੇ ਹਨ:
- Warm install (cache ਦੇ ਨਾਲ ਦੁਬਾਰਾ ਚਲਾਉਣਾ): 381 ms → 12 ms, 30 ਗੁਣਾ ਸੁਧਾਰ।
- Clean install (ਬਿਨਾਂ cache ਦੇ): 6.5 s → 2.2 s, ਸਮੇਂ ਨੂੰ ਅੱਧੇ ਤੋਂ ਵੀ ਵੱਧ ਘਟਾ ਦਿੱਤਾ ਗਿਆ ਹੈ।
ਜੋਖਮ ਅਤੇ ਸਮਝੌਤੇ
Rust engine ਅਜੇ ਵੀ alpha ਵਿੱਚ ਹੈ। ਟੀਮ ਦੀ ਸਲਾਹ ਹੈ ਕਿ ਜਦੋਂ ਤੱਕ ਇਹ pre-release ਸਟੇਜ ਤੋਂ ਬਾਹਰ ਨਹੀਂ ਆ ਜਾਂਦਾ, ਉਦੋਂ ਤੱਕ production ਵਿੱਚ v12 ਦੀ ਵਰਤੋਂ ਨਾ ਕੀਤੀ ਜਾਵੇ।
ਅੱਜ ਹੀ ਇਸਨੂੰ ਕਿਵੇਂ ਅਜ਼ਮਾਇਆ ਜਾਵੇ
ਡਿਵੈਲਪਰ pnpm self-update next-12 ਚਲਾ ਕੇ ਨਵੇਂ backend ਦਾ ਟੈਸਟ ਕਰ ਸਕਦੇ ਹਨ, ਜੋ ਕਿ ਸਭ ਤੋਂ ਨਵਾਂ pre-release binary ਡਾਊਨਲੋਡ ਕਰਦਾ ਹੈ। ਇਹ ਕਮਾਂਡ ਪ੍ਰੋਜੈਕਟ ਦੇ pnpm-lock.yaml ਜਾਂ node_modules layout ਨੂੰ ਬਦਲੇ ਬਿਨਾਂ JavaScript engine ਨੂੰ Rust engine ਨਾਲ ਬਦਲ ਦਿੰਦੀ ਹੈ। ਉਹ ਟੀਮਾਂ ਜੋ ਆਪਣੇ CI pipelines 'ਤੇ ਇਸਦੇ ਪ੍ਰਭਾਵ ਦਾ ਮੁਲਾਂਕਣ ਕਰਨਾ ਚਾਹੁੰਦੀਆਂ ਹਨ, ਉਹਨਾਂ ਨੂੰ ਇੱਕ disposable runner ਚਲਾਉਣਾ ਚਾਹੀਦਾ ਹੈ, pacquet backend ਨੂੰ ਚਾਲੂ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ, ਅਤੇ ਮੌਜੂਦਾ setup ਦੇ ਮੁਕਾਬਲੇ build times ਦੀ ਤੁਲਨਾ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ।
ਵਿਆਪਕ ਰੁਝਾਨ
pnpm ਦਾ ਇਹ ਕਦਮ compiled languages ਵੱਲ ਹੋ ਰਹੇ tooling migrations ਦੀ ਲਹਿਰ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। Biome, Oxc, ਅਤੇ Deno ਵਰਗੇ ਪ੍ਰੋਜੈਕਟਾਂ ਨੇ ਡਿਵੈਲਪਰ workflows ਵਿੱਚੋਂ latency ਘਟਾਉਣ ਲਈ ਆਪਣੇ performance-critical components ਨੂੰ Rust ਜਾਂ Go ਵਿੱਚ ਦੁਬਾਰਾ ਬਣਾਇਆ ਹੈ।
ਅੱਗੇ ਕੀ ਦੇਖਣਾ ਹੈ
- Stability milestones: ਰਿਲੀਜ਼ਾਂ ਦੀ ਨਿਗਰਾਨੀ ਕਰਨ ਨਾਲ ਪਤਾ ਲੱਗ ਜਾਵੇਗਾ ਕਿ ਇਹ production ਦੀ ਵਰਤੋਂ ਲਈ ਕਦੋਂ ਸੁਰੱਖਿਅਤ ਹੈ।
- Feature parity: ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਕਿਸੇ ਵੀ ਕਮੀ (gaps) ਲਈ changelog 'ਤੇ ਨਜ਼ਰ ਰੱਖਣੀ ਚਾਹੀਦੀ ਹੈ।
ਸਿੱਟਾ: pnpm ਦਾ Rust rewrite ਇੱਕ ਪਹਿਲਾਂ ਤੋਂ ਹੀ ਤੇਜ਼ ਪੈਕੇਜ ਮੈਨੇਜਰ ਨੂੰ ਦੁਬਾਰਾ install ਕਰਨ ਵੇਲੇ ਲਗਭਗ ਤੁਰੰਤ (instantaneous) ਬਣਾ ਦਿੰਦਾ ਹੈ, ਅਤੇ ਨਵੇਂ install ਲਈ ਸਮੇਂ ਨੂੰ ਅੱਧੇ ਤੋਂ ਵੀ ਵੱਧ ਘਟਾ ਦਿੰਦਾ ਹੈ। ਉਹਨਾਂ ਟੀਮਾਂ ਲਈ ਜੋ ਹਰ ਰਾਤ dependency resolution 'ਤੇ ਮਿੰਟਾਂ ਬਰਬਾਦ ਕਰਦੀਆਂ ਹਨ, ਇਹ ਅੱਪਗ੍ਰੇਡ workflow ਵਿੱਚ ਕਿਸੇ ਵੱਡੇ ਬਦਲਾਅ ਦੀ ਮੰਗ ਕੀਤੇ ਬਿਨਾਂ CI ਲਾਗਤਾਂ ਵਿੱਚ ਮਾਪਣਯੋਗ ਕਮੀ ਦਾ ਵਾਅਦਾ ਕਰਦਾ ਹੈ।
