เปิดตัว Bun 1.1
(bun.sh)รองรับ Windows
- สามารถรัน Bun บน Windows 10 ขึ้นไปได้
- ผ่าน 98% ของชุดทดสอบ Bun บน macOS และ Linux
- มาพร้อมตัวจัดการแพ็กเกจที่เข้ากันได้กับ npm ในตัว ทำให้ติดตั้งแอป Vite React ได้เร็วกว่า
yarn18 เท่า และเร็วกว่าnpm30 เท่า - รองรับการรันสคริปต์บน Windows ได้เร็วขึ้นด้วยรูปแบบไฟล์
.bunx - ปรับแต่ง Node.js API ให้เหมาะกับ Windows โดยใช้ system call ที่เร็วที่สุด
- ตัวอย่าง:
fs.readdir()เร็วกว่า Node.js 58%
- ตัวอย่าง:
Bun คือ JavaScript runtime
- รองรับ JavaScript, TypeScript และ JSX
- เครื่องมือบรรทัดคำสั่งอย่าง
tscเร็วกว่า Bun 1.0 ได้สูงสุด 2 เท่า - ตอนนี้ Bun Shell กลายเป็นเชลล์ข้ามแพลตฟอร์มที่ใช้งานได้บน Windows ด้วย
- มี core utility เช่น
ls,rm,cat - สามารถรันเชลล์จาก JavaScript และ TypeScript ได้ผ่าน API
Bun.$
- มี core utility เช่น
Bun.Glob- มี Glob API ในตัวสำหรับจับคู่ไฟล์และสตริง
- คล้ายกับ
fast-globและmicromatchแต่จับคู่สตริงได้เร็วกว่า 3 เท่า
Bun.Semver- API Semver ใหม่สำหรับแยกวิเคราะห์และจัดเรียงสตริง semver
- คล้ายกับแพ็กเกจ
node-semverแต่เร็วกว่า 20 เท่า
- คล้ายกับแพ็กเกจ
Bun.stringWidth()- API ใหม่สำหรับวัดความกว้างที่มองเห็นได้ของสตริงในเทอร์มินัล
- รองรับ ANSI escape code, อักขระ full-width, grapheme และอีโมจิ
server.url: สามารถรับ URL ของ HTTP server ที่สร้างด้วยBun.serve()ได้ผ่านพร็อพเพอร์ตีserver.urlserver.requestIP(): สามารถรับ IP address ของคำขอ HTTP ได้ผ่านเมธอดserver.requestIP()subprocess.resourceUsage(): สามารถเข้าถึงการใช้ CPU และหน่วยความจำของ subprocess ที่สร้างด้วยBun.spawn()ได้ผ่านเมธอดresourceUsage()- ปรับปรุงความเข้ากันได้กับ Node.js
- ปรับปรุง API หลายส่วน เช่น
node:http2client API, ความเข้ากันได้ของDate.parse(), การรองรับfs.readdir()แบบ recursive เป็นต้น - ทำ IPC ระหว่าง Bun และ Node.js ได้
- รองรับ Node.js API บางส่วนที่ไม่มีเอกสารด้วย
- ปรับปรุง API หลายส่วน เช่น
- Web API : รองรับ Web standard API เช่น
WebSocket,performance.mark(),fetch()ที่ใช้การบีบอัด Brotli และURL.canParse()
Bun คือ npm-compatible package manager
- ใช้
bun installเพื่อติดตั้งแพ็กเกจ npm ได้เร็วขึ้นสูงสุด 29 เท่า - ปรับปรุงฟีเจอร์อย่าง lifecycle script,
trustedDependencies,bun pm trustเป็นต้น
Bun คือ JavaScript bundler
- รองรับการ bundle โค้ดที่รันบน Node.js ได้ด้วย
bun build --target=node - สามารถคอมไพล์ไฟล์ TypeScript และ JavaScript เป็นไฟล์ executable เดี่ยวได้ด้วยแฟล็ก
--compile
Bun คือ test runner
- มีโมดูลทดสอบในตัวที่รองรับ API เดียวกับ Jest
- เพิ่ม matcher ใหม่ให้
expect()และรองรับการ mock โมดูล
รองรับ SQLite ในตัว
- รองรับ SQLite ด้วย API ที่ได้แรงบันดาลใจจาก
better-sqlite3 - ปรับปรุงการรองรับ multi-statement query, ข้อความแสดงข้อผิดพลาดแบบละเอียด, การนำเข้าฐานข้อมูล และความสามารถในตัว
ความเห็นจาก GN⁺
- Bun เป็นชุดเครื่องมือ JavaScript ที่เพิ่มประสิทธิภาพอย่างมากพร้อมคงความเข้ากันได้กับ Node.js และการรองรับ Windows ทำให้เข้าถึงชุมชนนักพัฒนาได้กว้างขึ้น
- test runner และการรองรับ SQLite ในตัวช่วยให้นักพัฒนาทำงานได้อย่างมีประสิทธิภาพโดยไม่ต้องพึ่งเครื่องมือเพิ่มเติม
- ประสิทธิภาพที่รวดเร็วและประสบการณ์นักพัฒนาที่ดีขึ้นของ Bun อาจโดดเด่นเป็นพิเศษในโปรเจกต์ขนาดใหญ่หรือแอปพลิเคชันที่ไวต่อประสิทธิภาพ
- แม้ Bun จะมีฟีเจอร์และการปรับปรุงหลากหลาย แต่การทำให้เข้ากันได้อย่างสมบูรณ์กับแพ็กเกจจำนวนมหาศาลใน ecosystem ของ Node.js ยังต้องอาศัยการพัฒนาอย่างต่อเนื่องและฟีดแบ็กจากชุมชน
- จำเป็นต้องมีการวิเคราะห์เพิ่มเติมว่าฟีเจอร์ใหม่ของ Bun จะสามารถแข่งขันหรือทำงานร่วมกับเครื่องมือเดิมที่อิง Node.js ได้อย่างไร
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
รายการการเปลี่ยนแปลงที่น่าประทับใจของ Bun
ฟีเจอร์มาโครของ Bun
ข้อสงสัยเกี่ยวกับเหตุผลในการใช้ Bun และ Deno
แฟนตัวยงของ Bun
การประเมินรีลีสใหม่ของ Bun
.jsของโปรเจกต์เข้ากับ runtime เพื่อสร้าง executable ที่ไม่มี dependencies ซึ่งมีประโยชน์เมื่ออยากแจกจ่ายไบนารีไฟล์เดียวให้ผู้ใช้ แต่ตอนนี้ขนาดไฟล์ยังค่อนข้างใหญ่ (มากกว่า 90MB สำหรับโปรเจกต์เล็กบน GNU/Linux)คำขอต่อทีม Bun
การมีส่วนร่วมของนักพัฒนา Bun
คำถามเกี่ยวกับเสถียรภาพของ Bun
โมเดลรายได้และเงินทุน VC ของ Bun