Bun รันไทม์จาวาสคริปต์ออกเวอร์ชั่น 0.7 โดยตัว Bun นั้นมีทั้ง runtime, bundler, transpiler, และ package manager โดยชูจุดแข็งที่ประสิทธิภาพดีกว่า NodeJS มาก ในเวอร์ชั่นล่าสุดก็หันมาปรับปรุงการทำงานร่วมกับโค้ด NodeJS เดิมพร้อมกับเพิ่มโหมดประหยัดแรม
เนื่องจาก API ของ Bun ยังไม่เท่ากับ NodeJS ทำให้ไม่สามารถรันเฟรมเวิร์คยอดนิยมหลายตัวบน Bun ในเวอร์ชั่นนี้ก็รองรับ Vite เพิ่มเข้ามาในระดับทดลอง สำหรับ API ที่เพิ่มเข้ามา เช่น Worker
สำหรับการรันโค้ดแยกออกจาก main thread เพื่อเตรียมรองรับ API worker_threads
ของ NodeJS, หรือ AsyncLocalStorage
ที่เป็น API จำเป็นสำหรับ NextJS
แม้ว่าจะเน้นเรื่องประสิทธิภาพ แต่ในเวอร์ชั่นนี้ Bun ก็เพิ่มออปชั่น --smol
เพื่อลดขนาด heap ลงและจองแรมให้ช้าลง ทำให้โดยรวมโปรเซสของ Bun กินแรมน้อยลงมาก ในการทดลองนั้นน้อยกว่า NodeJS เสียอีกแม้โหมดปกติจะกินแรมมากกว่า
ที่มา - Bun Blog
Comments
อยากจะลองใช้ Bun ดูเหมือนกัน แต่ขอรอตัว stable version ก่อน
ผมลองรอบล่าสุดแล้วปัญหาเยอะจัดต้องถอย (แต่ก็ตั้งแต่ตอนออกใหม่ๆ น่าจะปรับไปเยอะแล้ว) เท่าที่ตามอ่าน issue ประเด็นสำคัญคือเฟรมเวิร์คต่างๆ ก็ยังไม่ได้ทดสอบด้วย พอออกเวอร์ชั่นใหม่มาก็มีปัญหาเพิ่ม
lewcpe.com, @wasonliw
Memory Bleed เยอะจัด ๆ Unsafe Operation ไม่ได้อุดเพียบ ลองเขียนใช้เป็น Gateway พังบ่อยจนต้องถอยไปใช้ Deno แทน