Cover image

Bun คืออะไร?

24 Sep 2023

Share to:

สวัสดีครับ ในบทความนี้เราจะมาทําความรู้จัก Bun กันนะครับ สำหรับตอนนี้ Bun ได้ออก Version 1.0 เป็นที่เรียบร้อยแล้ว

Bun คือ a fast all-in-one runtime and toolkit ที่เป็น Runtime, package manager, test runner, bundler สำหรับโปรเจ็คที่พัฒนาด้วยภาษา JavaScript และ TypeScript หรือพูดง่ายๆก็คือ เหมือนกับ Node.js และ Deno แต่เครมตัวเองว่าเร็วกว่าเจ้าอื่นๆ

Image

ทําไม Bun ถึงเร็วกว่า Node.js และ Deno?

สําหรับ Node.js และ Deno จะเรียกใช้ V8 engine ของ Google แต่ Bun ได้นำ JavaScriptCore ของ WebKit (เป็นตัวที่ใช้ใน Safari ของ Apple) มาต่อยอดทำเป็น runtime ซึ่งมีประสิทธิภาพมากกว่า ทำให้ Bun มีผล benchmark ดีกว่า ทำงานเร็วกว่า Node.js และ Deno อย่างน้อย 3–4 เท่า

ข้อดีของ Bun เมื่อเทียบกับ Node.js และ Deno

  • สําหรับ Node.js และ Deno จะเรียกใช้ V8 engine ของ Google แต่ Bun ได้นำ JavaScriptCore ของ WebKit (เป็นตัวที่ใช้ใน Safari ของ Apple) มาต่อยอดทำเป็น runtime ซึ่งมีประสิทธิภาพมากกว่า ทำให้ Bun มีผล benchmark ดีกว่า ทำงานเร็วกว่า Node.js และ Deno อย่างน้อยประมาณ 3–4 เท่า
  • package manager: Bun จะสร้าง binary lockfile เป็นไฟล์ bun.lockb ขึ้นมาแทน ทำให้เวลาเรียก bun install จะเร็วกว่าใช้ npm install ประมาณ 20 เท่า สําหรับ lockfile คือตัวเก็บ metadata ของ module โดยอ้างอิง module จาก node_modules
  • Bun มี build-in package ในตัวเอง ซึ่งเรียกว่า Bun APIs อย่างเช่น HTTP Server, File I/O, TCP, Web APIs (fetch, Response, Request, …), WebSocket, SQLite, test runner, automatically loads .env files เป็นต้น โดยเราสามารถเรียกใช้งานได้เลยโดยไม่ต้อง install

ลองใช้งาน Bun

Step1 ติดตั้ง Bun

# with install script (recommended)
curl -fsSL https://bun.sh/install | bash

# with Homebrew
brew tap oven-sh/bun
brew install bun

Step2 สร้าง Project

สามารถสร้าง Project ได้ด้วยคําสั่งนี้ครับ

bun init

Bun จะสร้าง Project มาให้ดังนี้

Image

Step3 Run

ลอง run index.js โดยใช้คำสั่งนี้ได้เลยครับ

bun index.ts

จะได้ประมาณนี้

Image

คําสั่งอื่นๆ จะเหมือนกับ Node.js เลย ถ้าท่านใดเคยใช้งาน Node.js มาบ้างแล้วก็ใช้งานไม่ยากครับ

สามารถอ่านเพิ่มเติมได้จาก https://bun.sh/docs

ตัวอย่างคำสั่ง

bun run start                 # run the `start` script
bun install <pkg>             # install a package
bun build ./index.tsx         # bundle a project for browsers
bun test                      # run tests
bunx cowsay "Hello, world!"   # execute a package

Suggestion blogs

LDR ตัวต้านทานปรับค่าตามแสง

LDR (Light Dependent Resistor) คือตัวต้านทานปรับค่าตามแสง ตัวต้านทานชนิดนี้สามารถเปลี่ยนความนําไฟฟ้าได้เมื่อมีแสงมาตกกระทบ โฟโตรีซีสเตอร์ ( Photo  Resistor)   หรือ โฟโตคอนดัคเตอร์   (Photo Conductor)   เป็นตัวต้านทานที่ทำมาจากสารกึ่งตัวนำ (Semiconductor)   ประเภทแคดเมี่ยมซัลไฟด์ ( Cds : Cadmium Sulfide)   หรือแคดเมี่ยมซิลินายส์ ( CdSe : Cadmium Selenide)   ซึ่งทั้งสองตัวนี้ก็เป็นสารประเภทกึ่งตัวนำ เอามาฉาบลงบนแผ่นเซรามิกที่ใช้เป็นฐานรองแล้วต่อขาจากสารที่ฉาบ ไว้ออกมา โครงสร้างของ LDR

Review unbox Raspberry Pi2 model B 1GB

สวัสดีครับ วันนี้เราจะมาแกะกล่อง Raspberry Pi2 model B กัน รุ่นนี้มาพร้อมกับ Ram 1 Gb หลายๆท่านคงรู้จักกันแล้วนะครับ แต่ถ้ายังไม่รู้จักจะอธิบายให้ฟังครับ มันคือ คอมพิวเตอร์ขนาดเล็ก(ขนาดประมาณ 1 ฝ่ามือ)  ภายในจะรัน OS RASPBIAN ซึ่งถูกพัฒนามาจาก Debian

String ในภาษา c/c++

String ในภาษา c/c++ในภาษา c/c++ ตัวแปร String คือการนําตัวแปรชนิด char หลายๆตัวมาต่อกัน หรืออาจจะเรียกว่า char array โดยจะบอกจุดสิ้นสุดของ String ด้วยตัวอักษร(char) '\0'


Copyright © 2019 - 2024 thiti.dev |  v1.39.0 |  Privacy policy | 

Build with ❤️ and Astro.

Github profile   Linkedin profile   Instagram   X profile   Youtube channel   Telegram   Email contact   วงแหวนเว็บ