Tags:
Topics: 
Node Thumbnail

โครงการ Bun เพิ่มฟีเจอร์ Bun Shell ในเวอร์ชั่น 1.0.24 เปิดทางให้โปรแกรมเมอร์จาวาสคริปต์สามารถเขียนสคริปต์แบบเดียวกับ shell เพื่อให้จัดการระบบได้ซับซ้อนขึ้น เช่น การสำรองข้อมูล, ลบไฟล์, และรันโปรแกรมภายนอก

Bun Shell เป็น shell ที่อิมพลีเมนต์ขึ้นใหม่ทั้งหมด แก้ปัญหาการเรียก shell ภายนอกผ่าน subprocess ต่างๆ ที่กินเวลานาน และยังไม่สามารถทำงานข้ามแพลตฟอร์มได้ เช่น Bash นั้นไม่สามารถใช้งานบนวินโดวส์ได้

คำสั่งภายใน Bun Shell เองยังมีจำกัดมาก ได้แก่ cd, ls, rm, echo, pwd, และ bun ส่วนคำสั่ง mv นั้นยังอิมพลีเมนต์ไม่สมบูรณ์ และยังมีแผนอิมพลีเมนต์คำสั่ง mkdir, cp, และ cat ต่อไป ส่วนการเรียกโปรแกรมภายนอกนั้นสามารถเรียกตามโฟลเดอร์ PATH ได้เหมือน shell ปกติ

Tags:
Node Thumbnail

Bun รันไทม์จาวาสคริปต์ ออกเวอร์ชัน 1.0 ตามที่ประกาศไว้ ของใหม่ที่เพิ่มเข้ามาจากเวอร์ชัน 0.8 คือรองรับการรันเฟรมเวิร์คยอดนิยม Next.js, Astro, Nest.js แล้ว

Bun เป็นรันไทม์ที่ออกแบบมาให้ใช้แทน Node.js ได้ทันที (drop-in replacement) สามารถนำแอพที่เขียนบน Node.js และแพ็กเกจ npm มาใช้ทำงานได้เลย จุดเด่นของมันคือความเร็วที่เหนือกว่า 4 เท่า ยิ่งถ้าเขียนโค้ดมาเป็น TypeScript ที่ต้องแปลง (transpile) มาเป็น JavaScript ก่อนรัน ยิ่งเห็นความแตกต่างมากขึ้นอีก เพราะ Bun มีตัว transpiler ฝังมาในรันไทม์เลย สามารถรัน TypeScript ได้ในตัวเช่นเดียวกับ JavaScript

Tags:
Topics: 
Node Thumbnail

Bun รันไทม์จาวาสคริปต์คู่แข่ง NodeJS ออกเวอร์ชั่น 0.8 หลังจากออกเวอร์ชั่นแรกมาปีกว่าๆ พร้อมกับประกาศว่าจะออกเวอร์ชั่น 1.0 วันที่ 7 กันยายนนี้

ในเวอร์ชั่น 0.8 นี้มีฟีเจอร์สำคัญคือตัว debugger เมื่อรัน bun ด้วยออปชั่น --inspect จะรัน HTTP server ในพอร์ตที่ไม่มีการใช้งานเพิ่มขึ้นมาเพื่อให้เชื่อมต่อ debugger เข้าไปได้ มีฟีเจอร์ครบถ้วนทั้งการตั้ง breakpoint, ดูค่าในตัวแปรต่างๆ, และการรันแบบ step-by-step

นอกจากฟีเจอร์ของ Bun เองแล้วก็ยังปรับปรุงการซัพพอร์ตไลบรารีและเฟรมเวิร์คต่างๆ เช่น SvelteKit, Nuxt, OpenAI เป้นต้น

ที่มา - Bun

Tags:
Node Thumbnail

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

Tags:
Node Thumbnail

Bun รันไทม์ JavaScript ที่เพิ่งเปิดตัวเมื่อปีที่แล้ว ออกเวอร์ชั่น 0.6.0 โดยมีความสามารถสำคัญคือสร้างไฟล์ executable แยกไปรันได้โดยไม่ต้องการไลบรารีภายนอกเพิ่มเติม

โครงสร้างภายในที่เปลี่ยนไป คือทาง Bun สร้าง bundler ขึ้นใหม่เอง โดยยังคงชูความเร็วว่า build เร็วกว่า Webpack 5 ถึง 224 เท่าตัว เพราะตัว bundler แปลงโค้ด (transpile) ในตัวพร้อมใช้งาน ไม่ต้องไปแปลงใหม่อีกรอบ นักพัฒนาสามารถเขียนปลั๊กอินให้ bundler และ runtime ได้ด้วย API เดียวกัน

ความเปลี่ยนแปลงอื่นๆ มีอีกจำนวนมาก เช่น รองรับ TypeScript 5.0, เพิ่ม API ของ NodeJS มากขึ้นหลายตัว และรองรับ Web API เพิ่มเติม นอกจากนี้ยังแก้บั๊กจำนวนมาก

Tags:
Topics: 
Node Thumbnail

Jarred Sumner นักพัฒนา Front End ที่หันมาพัฒนารันไทม์จาวาสคริปต์ Bun โดยชูจุดแข็งความเร็วเหนือกว่ารันไทม์ยอดนิยม ประกาศเปิดบริษัท Oven ที่จะเป็นผู้พัฒนาหลักของ Bun

Bun ได้รับความนิยมอย่างสูงในเวลาอันสั้น ตอนนี้มีดาวบน GitHub แล้ว 32,000 ดาว พร้อมกับสมาชิกใน Discord อีกถึง 14,000 คน ตอนนี้เป้าหมายการพัฒนาคือการออกรุ่นเสถียรภายใน 6 เดือนข้างหน้า

ตัวบริษัท Oven ได้รับทุนมาแล้ว 7 ล้านดอลลาร์ และกำลังรับสมัครนักพัฒนาเพิ่มเติม โมเดลรายได้ของ Oven จะเปิดบริการคลาวด์ของตัวเอง รูปแบบน่าจะคล้าย Deno Deploy ที่พัฒนารันไทม์เหมือนกัน

ที่มา - Oven.sh

Tags:
Node Thumbnail

Jarred Sumner นักพัฒนา Front End เปิดตัวโครงการ Bun รันไทม์จาวาสคริปต์ที่พยายามแข่งกับ Node และ Deno โดยชูจุดเด่นที่ความเร็วเหนือกว่ารันไทม์ยอดนิยมในหลายๆ ด้าน มันมาพร้อมกับตัวจัดการแพ็กเกจและตัวแปลงโค้ด (transpile) จาก TypeScript เป็นจาวาสคริปต์ในตัว

Bun พัฒนาด้วยภาษา Zig ตัว Summer ผู้พัฒนาระบุว่าเขาออปติไมซ์เพิ่มเติมหลายอย่างเพื่อให้การทำงานเร็วขึ้น โดยเฉพาะการเริ่มรัน และการติดตั้ง dependencies ที่อาศัยการออปติไมซ์การเรียก system call จนประสิทธิภาพดีกว่าตัวจัดการแพ็กเกจอื่นๆ นับสิบเท่า ระบบฐานข้อมูลแพ็กเกจใช้ไฟล์ไบนารีแทน JSON เพื่อลดเวลาการ parse