Bun: Runtime JavaScript yang Super Cepat
Alternatif Node.js dengan speed boost dan built-in tools
Tujuan Pembelajaran
- Memahami apa itu Bun dan bedanya dengan Node.js
- Bisa install dan menjalankan Bun
- Mengerti built-in tools: bundler, test runner, package manager
Analogi
Node.js vs Bun:
Node: npm install → node app.js → jest test → webpack build
Bun: bun install → bun run app → bun test → bun build (semua built-in)
Bun adalah all-in-one JavaScript toolkit: runtime, bundler, test runner, dan package manager
Penjelasan Konsep
Kalau kamu sudah familiar dengan Node.js, mungkin kamu merasa workflow-nya terasa ‘berbelit’: npm untuk install package,
Node untuk run, jest untuk test, webpack/rollup untuk bundle, dotenv untuk env vars.
Setiap tool dari vendor berbeda, config-nya beda-beda, dan sering saling bertabrakan.
Bun: All-in-One JavaScript Toolkit
Bun adalah runtime JavaScript modern yang dibuat dengan Zig dan menggunakan JavaScriptCore (engine Safari) alih-alih V8 (engine Chrome/Node).
Hasilnya?
Performa yang signifikan lebih cepat — terutama untuk startup dan I/O operations.
Tapi speed bukanlah satu-satunya keunggulan Bun.
Yang lebih menarik adalah filosofi ‘batteries included’:
- Runtime: Jalankan JavaScript/TypeScript (tanpa transpile!)
- Package Manager: Install dependency 20-30x lebih cepat dari npm
- Bundler: Bundle untuk production (seperti webpack/rollup)
- Test Runner: Unit test built-in (seperti jest/vitest)
- Shell scripting: Jalankan file .ts/.js seperti bash script
Install Bun
curl -fsSL https://bun.sh/install | bash
Bun vs Node.js: Perbedaan Utama
- Speed: Bun lebih cepat 3-4x untuk startup dan 2-3x untuk I/O operations
- TypeScript native: Bun bisa langsung jalankan .ts tanpa transpile manual
- ESM & CJS: Bun mendukung keduanya tanpa config rumit
- Built-in fetch: fetch(), WebSocket(), dan API modern sudah built-in
- SQLite built-in: bun:sqlite untuk database SQLite tanpa dependency
Migrasi dari Node.js ke Bun
Bun didesain untuk compatible dengan Node.js. Sebagian besar kode Node.js bisa langsung jalan di Bun tanpa modifikasi.
Tapi ada beberapa perbedaan:
- Global: process, Buffer, __dirname, __filename semua works
- Modules: require() dan import both work
- APIs: fetch(), setTimeout(),
Console — all compatible
- Native addons: Node-API addons should work
Kapan Pakai Bun?
- Proyek baru yang butuh speed
- Scripting dan automation
- Tooling development
- Edge computing (Bun runtime ringan)
Kapan Tetap Node.js?
- Proyek legacy yang sudah stabil
- Library/framework yang belum support Bun
- Team yang sudah nyaman dengan ekosistem Node
Contoh Kode
# Install Bun
curl -fsSL https://bun.sh/install | bash
# Cek versi
bun --version
# Init project
bun init
# Install dependency (cepat banget!)
bun install express hono drizzle-orm
# Jalankan TypeScript langsung (tanpa tsc!)
bun run app.ts
# Jalankan dengan watch mode
bun --watch run app.ts
# Test
bun test
# Build untuk production
bun build ./app.ts --outdir ./out
# Run sebagai executable script
bun ./script.tsPenjelasan Kode
Prompt AI
Install Bun di sistemmu. Buat file hello.ts yang mencetak 'Hello Bun!', jalankan dengan bun run.
Pertanyaan Reflektif
Bandingkan waktu install dependency antara npm install dan bun install di proyek yang sama.