1 poin oleh GN⁺ 2025-01-25 | 1 komentar | Bagikan ke WhatsApp

Pembaruan Bun 1.2

  • Bun 1.2 secara signifikan meningkatkan kompatibilitas Node.js dan hadir dengan API penyimpanan objek S3 serta klien Postgres bawaan. bun install kini menggunakan bun.lock berbasis teks. Performa Express ditingkatkan 3 kali lipat.

Kompatibilitas Node.js

  • Bun dirancang sebagai pengganti Node.js, dan kompatibilitasnya ditingkatkan dengan menjalankan test suite Node.js.
  • Dengan mengatasi perbedaan pada API internal dan pesan error, Bun kini lolos lebih dari 90% pengujian modul Node.js.

Server HTTP/2 dan modul lainnya

  • Anda dapat membuat server HTTP/2 menggunakan node:http2, yang juga diperlukan untuk server gRPC.
  • Anda dapat melakukan bind dan connect ke soket UDP menggunakan node:dgram.
  • Anda dapat membuat beberapa instance Bun menggunakan node:cluster untuk memproses pekerjaan secara paralel.
  • Modul node:zlib ditulis ulang dalam kode native sehingga performanya meningkat 2 kali lipat.

Dukungan S3

  • Bun 1.2 menyertakan API S3 bawaan untuk membaca, menulis, dan menghapus file.
  • Klien S3 Bun ditulis dalam kode native dan 5 kali lebih cepat daripada Node.js.

Dukungan Postgres

  • Anda dapat menjalankan kueri SQL menggunakan Bun.sql, yang mencegah SQL injection.
  • Bun.sql 50% lebih cepat daripada klien Postgres lainnya.

Manajer paket

  • bun install kini menggunakan bun.lock berbasis teks agar lebih cepat dan mengurangi konflik merge.
  • Anda dapat menggunakan komentar dan trailing comma di package.json.
  • File .npmrc dapat dibaca untuk mengonfigurasi registry npm.

Test runner

  • Bun menyediakan test runner bawaan yang memudahkan penulisan dan eksekusi pengujian.

1 komentar

 
GN⁺ 2025-01-25
Pendapat Hacker News
  • Beberapa pengguna mempertanyakan dimasukkannya pustaka eksternal ke pustaka inti, dan menganggap akan lebih baik jika itu dijadikan pustaka opsional

    • Runtime harus sangat berhati-hati saat memasukkan sesuatu ke pustaka standar, dan hal-hal yang sudah dimasukkan pun bisa membuat proyek menjadi lebih kompleks
  • Ada pendapat bahwa pengalaman menggunakan Bun sangat baik

    • Menyiapkan TypeScript, Jest, React, dan Webpack terasa merepotkan, tetapi Bun sederhana dan efektif
    • Mereka tidak bisa banyak berkomentar soal integrasi pustaka eksternal, tetapi secara umum Bun berfokus pada hal-hal yang paling sering diminta
  • Ada pendapat bahwa perilaku bawaan Bun terlalu “ajaib”

    • Misalnya, memberikan presigned URL kepada pengguna alih-alih mengunduh file S3 adalah pilihan yang mengejutkan
    • Tidak jelas bagaimana cara menonaktifkan perilaku seperti ini
  • Ada pendapat bahwa fitur bawaan membuat perbedaan besar

    • Mereka menyukai bahwa Web API sudah tersedia secara bawaan di runtime V8 dan WebKit
    • Namun, S3 mungkin sudah terlalu jauh; driver SQL masih bisa dipahami, tetapi perlu dipikirkan sampai sejauh mana sesuatu sebaiknya disertakan
    • Dengan menambahkan API yang sensitif, ada kemungkinan masalah keamanan terlewat
  • Ada pendapat bahwa salah satu klien mereka memakai Bun di production, dan pengalaman pengembangnya sangat baik

    • Pengalaman pengembang bisa memainkan peran besar dalam jangka panjang
    • Jika codebase atau prosesnya buruk, perusahaan bisa kehilangan talenta yang bagus
  • Ada pendapat bahwa daftar fitur Bun sangat panjang sehingga muncul keraguan apakah semuanya benar-benar kokoh dan bebas bug

    • Dari sudut pandang manajemen proyek, menghabiskan waktu untuk dukungan S3 terasa tidak masuk akal
    • Mendapatkan pengguna Next.js mungkin akan menjadi cara yang lebih baik untuk bertumbuh
  • Dukungan HTML import ditambahkan di Bun 1.2

    • Seluruh toolchain frontend dapat digantikan hanya dengan satu pernyataan import
    • Ada pendapat bahwa ini adalah fitur yang sangat mengejutkan dan keren
  • Ada pendapat bahwa pengalaman pertama menggunakan Bun terasa sangat mengesankan

    • Menyiapkan Webpack atau Vite terasa merepotkan, tetapi Bun langsung bekerja
    • Untuk skrip kecil, rasanya tidak layak melakukan banyak konfigurasi, tetapi Bun bekerja dengan sangat baik
  • Ada pendapat bahwa awalnya mereka mengira Bun akan gagal sebagai alternatif Node.js, tetapi setelah mencobanya hasilnya memuaskan

    • Mereka bisa dengan mudah membuat skrip mandiri untuk menangani TypeScript dan pembaruan DB SQLite
    • Mereka juga mencobanya pada proyek JS/TypeScript baru, dan semuanya berjalan cepat
  • Ada pendapat bahwa proses quality assurance terlihat formalitas belaka

    • Perubahannya tampak digabungkan dan dirilis meski build belum lolos
    • Jika pengujian tidak stabil, akan sulit melacak regresi