JavaScript Runtime ที่รวมเอาทุกอย่างไว้ด้วยกัน เห็นมีการพูดถึง Bun ซึ่งเป็น JavaScript Runtime ที่รวมเอาทุกอย่างไว้ด้วยกัน ทั้ง Bundling ของ JS และ CSS, Transpiler ของ JS, TS และ JSX JavaScript Runtime ที่มี Web API มาเลย ทั้ง fetch และ websocket เป็นต้น
Task runner และ package manager ที่ทำงานร่วมกับ package.json และ npm ได้เลย
ที่สำคัญเร็วมาก ๆ !!
ปล. แต่เป็นเพียงตัวที่สร้างขึ้นมาเพื่อทดลองเท่านั้นนะ !!
Bun พัฒนาด้วยภาษา Zig และ C++ เป็นหลัก
มาลองใช้งานง่าย ๆ กัน
เริ่มด้วยการติดตั้ง
$curl -fsSL https://bun.sh/install | bash $bun -v 0.1.2
จากนั้นลองเขียน api server เล่นหน่อย ด้วย fetch
export default { port: 3000, fetch(request) { return new Response("Welcome to Bun!"); }, };
สุดท้ายก็ลอง start server และยิง load test ด้วย WRK ดูหน่อย
จะได้ผลตามนี้ ยิงเบา ๆ
ได้ผลออกมา โหดร้ายจริง ๆ
// Start API server $bun run api.js $curl http://localhost:3000 Welcome to Bun! // Load testing with WRK $wrk -t 5 -c 100 -d 10s http://localhost:3000 Running 10s test @ http://localhost:3000 5 threads and 100 connections Thread Stats Avg Stdev Max +/- Stdev Latency 847.11us 320.60us 11.17ms 95.50% Req/Sec 23.79k 1.89k 26.56k 83.17% 1195402 requests in 10.10s, 107.16MB read Requests/sec: 118339.21 Transfer/sec: 10.61MB