- REPL sepenuhnya ditulis ulang dengan Zig, menghadirkan eksekusi instan dan UI terminal yang kaya, serta mendukung berbagai fitur seperti salin ke clipboard, pelengkapan tab, dan penyimpanan riwayat
- Dengan perintah kompilasi target browser, dapat dibuat satu file HTML tunggal dengan semuanya di-inline, sehingga bisa dijalankan tanpa server
- Dekorator ES standar TC39 kini didukung penuh, memungkinkan penggunaan sintaks terbaru seperti
accessor, Symbol.metadata, dan addInitializer
- Termasuk banyak peningkatan platform dan performa seperti dukungan Windows ARM64, optimasi barrel import, opsi retry untuk test, dan engine JavaScriptCore dengan performa lebih baik
- Secara keseluruhan, ini adalah rilis yang sangat meningkatkan developer experience, performa, dan kompatibilitas Bun
REPL baru
- REPL diganti dengan implementasi native berbasis Zig, sehingga dapat langsung dijalankan tanpa dependensi paket npm eksternal
- Mendukung syntax highlighting, keybinding Emacs, pelengkapan tab, penyimpanan riwayat, input multi-baris, dan lain-lain
- Menyediakan perintah bawaan seperti
.copy, .help, .exit, .editor
- Tetap mempertahankan deklarasi
const/let, serta mendukung top-level await dan import/require
--compile --target=browser
bun build --compile --target=browser menghasilkan HTML dengan JavaScript, CSS, dan aset yang di-inline
- Tag
<script src="..."> dan <link rel="stylesheet"> masing-masing diubah menjadi kode inline
- Dapat dijalankan bahkan di lingkungan
file:// tanpa batasan CORS
- Mendukung TypeScript, JSX, React, CSS, ESM, dan CJS
Dekorator ES standar TC39
- Dukungan penuh untuk dekorator standar Stage-3
- Mengimplementasikan spesifikasi terbaru seperti keyword
accessor, Symbol.metadata, dan ClassMethodDecoratorContext
- Mendukung dekorator field, method, dan class serta initializer (
addInitializer)
- Dekorator eksperimental TypeScript yang lama (
experimentalDecorators) juga tetap berfungsi
Dukungan Windows ARM64
- Bun kini dapat dijalankan dan di-build di Windows berbasis ARM64 seperti Snapdragon
- Mendukung cross compile ke target
bun-windows-arm64
- Dapat digunakan dengan cara yang sama baik dari CLI maupun API
Optimasi barrel import
- Secara otomatis mendeteksi struktur re-export file barrel seperti
import { Button } from 'antd'
- Optimasi otomatis aktif saat
"sideEffects": false disetel
- Dapat ditentukan secara eksplisit lewat opsi
optimizeImports
- Dengan hanya mem-parsing submodul yang diperlukan, kecepatan build meningkat hingga 2x
Optimasi output bundel
- Pada bundel ESM/CJS, jumlah closure dan penggunaan heap memory berkurang
- Jumlah objek turun 11%, ukuran heap berkurang 4MB, dan jumlah fungsi serta objek environment dipangkas signifikan
- Diterapkan otomatis tanpa perubahan kode
bun test --retry
- Kini bisa menetapkan jumlah retry default untuk seluruh test (
--retry N)
- Opsi
{ retry: N } pada test individual tetap diprioritaskan
- Reporter JUnit XML mencatat tiap percobaan sebagai
<testcase> terpisah
Peningkatan Bun.generateHeapSnapshot("v8")
- Opsi
"arraybuffer" memungkinkan heap snapshot dikembalikan dalam bentuk ArrayBuffer
- Menghilangkan overhead konversi string saat menangani snapshot berukuran besar
Pembaruan TLS dan sertifikat
- Performa meningkat berkat dukungan keepalive untuk koneksi mTLS dan CA kustom
- Konfigurasi TLS yang sama dideduplikasi di registry global
- Sertifikat root diperbarui ke NSS 3.119 (Firefox 147.0.3)
- 4 sertifikat root CommScope dihapus
Upgrade engine JavaScriptCore
- Berbagai peningkatan performa termasuk string slicing 168x,
endsWith 10,5x, akses flag RegExp 1,6x, dan path.parse() hingga 7x
structuredClone menjadi hingga 25x lebih cepat pada array dan array objek
Buffer.slice() dan subarray() meningkat sekitar 1,8x
- Ada optimasi internal untuk
BigInt, iterator string, operasi integer, dan lainnya
Perbaikan bug utama
- Menyelesaikan masalah kompatibilitas pipe dengan server MCP Python asyncio (
Bun.spawn)
- Kompatibilitas Node.js: banyak perbaikan pada
AsyncLocalStorage, fs.watch, pemrosesan header http, crash terkait GC, dan lainnya
- Bun API: memperbaiki crash dan memory leak terkait
spawn, plugin, sql, dan build
- Meningkatkan stabilitas secara umum pada WebSocket, bun install, parser CSS, bun shell, lingkungan Windows, dan lainnya
- Kerentanan keamanan: memperbaiki injeksi header HTTP, penelusuran jalur tarball, kebocoran stream S3, dan lainnya
1 komentar
Saya sudah mengikuti perkembangannya cukup lama dan sesekali memakainya sejak awal, dan kesan yang saya dapat adalah para pengembang Bun benar-benar sungguh-sungguh ingin membuat dunia JS/TS bergerak lebih cepat. Mengesankan. Benar-benar...