วันเสาร์ที่ 9 กันยายน พ.ศ. 2566

Bun 1.0

Post นี้เราได้มาลองศึกษาตัว Bun 1.0 ที่พึ่งปล่อยมาวันนี้ (8 กันยายน 2566)
ในตอนนี้ Bun จะยังไม่สามารถใช้งานแบบ Native บน Windows แต่เราสามารถใช้งานผ่าน WSL
และในอนาคตคาดว่าจะมีรองรับบน Windows

Bun คืออะไร


Bun เป็น JavaScript Runtime เหมือนกับ Node.js แต่มีความแตกต่างกันที่ Engine
โดย Bun สร้างขึ้นมาบน JavaScript Core (อยู่ใน Webkit จาก Safari)
และ Node.js ถูกสร้างมาบน V8 (รันอยู่บน Chrome)

Bun ถูกพัฒนาให้รองรับการเขียน JavaScript โดยมี 3 เป้าหมายหลัก
1. Speed - ทำงานได้เร็ว พัฒนาจาก JavaScript Core เป็น Engine ที่มีประสิทธิภาพที่ใช้กับ Safari
2. Elegant APIs. - มี APIs ที่เป็น Common โดยปรับแต่งเรื่องประสิทธิภาพแล้ว เช่น HTTP Server หรือ การเขียน File และมีอื่น ๆ อีก
3. Cohesive DX - มี Toolkit ที่ใช้สำหรับสร้าง JavaScript Apps เช่น Package Manager, Test Runner และ Bundler
Bun ถูกออกแบบมาให้สามารถใช้แทน Node.js ได้เลย และสามารถ Run TypeScript, TSX File โดยที่ไม่ต้องพึ่ง Dependency

ความเร็วสูงสุดในตอนนี้
ในการแสดงผลหากเราพิมพ์ console.log("Hello World") Bun จะเร็วกว่า Node.js ถึง 4 เท่า
และถ้าหากเป็น TypeScript ที่จะต้องมีการ Build ก่อน ก็จะให้เห็นว่าเร็วมาก
การใช้งานแทน Node.js Bun สามารถใช้คำสั่งทุกคำสั่งที่ใช้กับ NPM ได้เลย เช่นถ้าเราใช้ npm run dev ก็สามารถใช้ bun run dev ได้เลย
และรองรับ TypeScript และ TSX File รองรับ CommonJS และ ESModule ในตัว
รองรับการใช้งาน Hot Reload สามารถแสดงการ Update ได้เลยโดยไม่เสีย State ไม่ต้อง Reload หน้าเว็บใหม่
และสามารถทำ Custom โดยใช้ Plug-in API ได้
Baked in APIs ที่เราจำเป็นต้องใช้
Bun มี APIs ที่สามารถใช้งานได้เลยโดยที่ไม่ต้องเรียกใช้ Dependency เพิ่ม
Bun.file ในการอ่านสามารถทำได้เร็วกว่า Node.js โดยเร็วกว่า 10 เท่า และการเขียนทำได้เร็วกว่า 3 เท่า
Bun.serve สามารถรองรับได้เยอะกว่า Node.js โดยเร็วกว่า 4 เท่า และ WebSocket ได้ที่ 1 ล้าน Messages ต่อ 1 วินาที
ดูเพิ่มเติม https://bun.sh/docs/runtime/bun-apis

อย่างไรก็ตามความเข้ากันได้กับ Node.js ในกรณีที่เราจะเอาใช้งานแทนที่ให้เราดูข้อมูลเพิ่มเติมจากเว็บ
เนื่องจากมี Node buil-in module ที่ยังไม่รองรับในตอนนี้ https://bun.sh/docs/runtime/nodejs-apis


การติดตั้งและทดลองใช้งานเบื้องต้น


* การติดตั้งต้องลง unzip ก่อนจากนั้นก็ทำสั่งตามคำสั่งติดตั้งได้เลย
เมื่อลง bun เสร็จแล้วให้ปิด WSL แล้วเปิดขึ้นมาให้อีกครั้ง เสร็จแล้วลองพิมพ์ bun ลงในก็จะเห็นว่า version 1 ติดตั้งแล้ว

Bun มี APIs มาให้แล้ว ลองจับมาเล่นก่อน 2 ตัว คือ HTTP Server และ Read and Write File
อันแรก HTTP Server ก็ทำการ Copy Code แล้ว Past ลงใน File server.js แล้วสั่ง bun server.js

อันที่ 2 การอ่าน File และเขียน File
จากตัวอย่างหน้าเว็บ ถ้าเราสั่ง bun file.js ไปจะทำให้ File ถูกเขียนทับแต่จะกลายเป็น Object ลงแทน
ในส่วนนี้คิดว่าเราเองต้องหาคำสั่งในการเขียนที่ถูกต้องอีกที
การอ่าน File ดูเพิ่มเติมได้ที่ https://bun.sh/guides/read-file
การเขียน File ดูเพิ่มเติมได้ที่ https://bun.sh/guides/write-file



แหล่งข้อมูลจาก
https://bun.sh
1) https://bun.sh/blog/bun-v1.0
2) https://bun.sh/docs/installation
3) https://bun.sh/guides
4) https://www.youtube.com/@bunjs

Ref: https://www.youtube.com/watch?v=dWqNgzZwVJQ
Ref: https://www.youtube.com/watch?v=dQkv5C-Lfkw

ไม่มีความคิดเห็น:

แสดงความคิดเห็น