- บันเดลเลอร์ JavaScript ยุคถัดไปที่เขียนด้วย Rust
- เข้ากันได้กับ API และอีโคซิสเต็มของ Webpack แต่เร็วกว่า 10 เท่าขึ้นไป
- พัฒนาขึ้นและใช้งานเป็นหลักภายใน ByteDance และเริ่มมีหลายบริษัทอย่าง Microsoft, Amazon, Alibaba นำไปใช้ด้วย
ฟีเจอร์ใหม่ที่เพิ่มเข้ามาหลังเวอร์ชัน 0.1 (18 เดือนก่อน)
- ปรับปรุงประสิทธิภาพ: มีการปรับปรุงประสิทธิภาพและเพิ่มฟีเจอร์หลักเพื่อรับประกันประสิทธิภาพที่ดียิ่งขึ้นแม้ในโปรเจ็กต์ขนาดใหญ่
- ปรับปรุงความเข้ากันได้: ปรับปรุงความเข้ากันได้กับปลั๊กอินและโหลดเดอร์ของ webpack พร้อมรองรับ React, Preact, Vue, Solid, Svelte และ NestJS
- ปรับขนาดบันเดิลให้เหมาะสม: มีความสามารถด้านการปรับแต่งให้เทียบเท่ากับ webpack
- รองรับ Module Federation 2.0
- API ที่เสถียรและเว็บไซต์ใหม่
เหตุผลที่ควรเลือก Rspack
- รองรับการย้ายระบบแบบค่อยเป็นค่อยไป
- รองรับทุกสภาพแวดล้อมที่ JavaScript ทำงานได้ ไม่ใช่แค่เบราว์เซอร์และ Node.js แต่รวมถึง Deno, Electron, แอปพลิเคชันข้ามแพลตฟอร์ม, MiniApps และอื่น ๆ
- มีทูลเชน Rstack ("Rspack Stack") ที่สร้างบน Rspack
- Rspack: มุ่งเน้นการสร้างบันเดลเลอร์ประสิทธิภาพสูง โดยเน้นการสร้างสมดุลระหว่างประสิทธิภาพและการตั้งค่าที่ยืดหยุ่น
- Rsbuild: มุ่งเน้นการสร้างเว็บแอปพลิเคชัน พร้อมมอบประสบการณ์การพัฒนาที่ใช้งานได้ทันที
- Rslib: มุ่งเน้นการบิลด์ไลบรารี พร้อมเอาต์พุต ESM และ CJS คุณภาพสูง
- Rspress: มุ่งเน้นการสร้างเว็บไซต์แบบสแตติก พร้อมรองรับ MDX สำหรับสร้างเว็บไซต์เอกสารและบล็อก
- Rsdoctor: มุ่งเน้นการวิเคราะห์การบิลด์ และช่วยให้นักพัฒนาแก้ปัญหาที่เกี่ยวข้องกับการบิลด์ได้
ความเข้ากันได้กับ webpack
- Rspack 1.0 ถูกออกแบบมาให้เข้ากันได้กับ webpack v5 เพื่อช่วยให้หลายโปรเจ็กต์ที่ใช้ webpack สามารถย้ายมาใช้ Rspack ได้อย่างราบรื่น
- ในขณะที่ยังคงความเข้ากันได้กับ webpack, Rspack 1.0 ก็รองรับมาตรฐานเว็บสมัยใหม่และมุ่งเป้าไปที่ประสิทธิภาพการบิลด์สูงสุด
- สำหรับมาตรฐานเว็บนั้น Rspack ติดตามความก้าวหน้าของมาตรฐานเว็บสมัยใหม่ รวมถึงพัฒนาการล่าสุดของ TC39 และมาตรฐานเว็บอย่างใกล้ชิด ตัวอย่างเช่น Rspack รองรับการใช้ Web Workers ผ่าน
new Worker(), การนำเข้า JSON modules ผ่าน Import Attributes และการนำเข้า CSS ตามสเปก CSS Module Scripts แล้ว
- ด้านประสิทธิภาพ มีการนำการปรับแต่งจำนวนมากเข้ามาใน 1.0 ตัวอย่างเช่น หากไม่มีการใช้ hook ฝั่ง JavaScript ก็จะไม่มีการเรียกการสื่อสารกับฝั่ง JavaScript จากฝั่ง Rust นอกจากนี้ Rspack ยังใช้การโหลดแบบหน่วงเวลากับ message object จำนวนมาก แม้ message object จะมีขนาดใหญ่ แต่หาก JavaScript ใช้เพียงบางส่วนของพร็อพเพอร์ตี Rspack ก็จะส่งเฉพาะข้อมูลที่ถูกใช้เท่านั้น เพื่อลดโอเวอร์เฮดของการสื่อสารระหว่าง Rust และ JavaScript ให้ต่ำที่สุด และในอนาคต Rspack มีแผนจะจัดเตรียม hook ที่เบากว่าเดิมเพื่อให้การสื่อสารระหว่าง Rust และ JavaScript มีประสิทธิภาพยิ่งขึ้น
- ในเมเจอร์รีลีสถัดไป Rspack จะพัฒนาต่อบนพื้นฐานของ webpack API เพื่อให้ตอบโจทย์ความต้องการของการพัฒนาเว็บสมัยใหม่ได้ดียิ่งขึ้น
แผนต่อจากนี้
- พัฒนา Rspack 1.x - มีแผนเพิ่มฟีเจอร์ใหม่และการปรับปรุงต่าง ๆ ในช่วง 12~18 เดือนข้างหน้า
- มีแผนรองรับ HMR ที่เร็วขึ้น, แคชที่พกพาได้, การปรับแต่งบนพื้นฐาน TypeScript, Rust API ที่เสถียร, การรองรับ React Server Components และการปรับปรุงเอาต์พุต ESM เป็นต้น
- พัฒนา Rsbuild 1.0, Rsdoctor 1.0, Rslib 0.x, Rspress 2.0
ยังไม่มีความคิดเห็น