Jarred Sumner, pencipta dan pengembang utama platform JavaScript sisi server Bun, telah menyatakan eksperimennya dalam menulis ulang proyek dari Zig dan Rust menggunakan asisten AI Claude Code sebagai sebuah keberhasilan dan telah memutuskan untuk memigrasikan Bun ke Rust. Penulisan ulang Rust telah diterima ke dalam repositori utama proyek, dan kode Zig dijadwalkan untuk dihapus. Penulis Bun juga mengumumkan perekrutan staf pendukung dengan pengalaman pengembangan C/C++ dan Rust lebih dari lima tahun.
Saat ini, port langsung dari bahasa Zig telah diimplementasikan dalam Rust. Port ini mencakup banyak blok kode yang tidak aman dan menggunakan arsitektur, struktur data, dan pustaka eksternal yang sama. Port Rust telah berhasil melewati rangkaian pengujian yang ada di semua platform. Beberapa kebocoran memori dan kegagalan pengujian juga telah diperbaiki.
Setelah membangun versi Rust, ukuran file eksekusi menjadi 3-8 MB lebih kecil daripada versi Zig. Dalam pengujian performa, versi Rust lebih cepat atau setara. Namun, menurut Jarred, keunggulan terpenting dari versi Rust adalah kemampuannya untuk mendeteksi dan mencegah kesalahan memori, yang selama beberapa tahun terakhir menjadi tugas yang sangat memakan waktu bagi para pengembang Bun.
Alasan untuk menulis ulang ke Rust sebelumnya disebutkan sebagai keinginan untuk memperbaiki masalah di Bun yang disebabkan oleh kebocoran memori, ketidaksepakatan dengan penulis Zig mengenai penggunaan AI untuk menulis kode, dan kebijakan Zig mengenai penerimaan perubahan pada bahasa yang merusak kompatibilitas, yang tidak dapat diterima untuk proyek-proyek besar.
Platform JavaScript Bun sedang dikembangkan sebagai alternatif berkinerja tinggi untuk Node.js dan Deno. Proyek ini dikembangkan dengan mempertimbangkan kompatibilitas untuk aplikasi server Node.js dan mendukung sebagian besar API Node.js. Platform ini mencakup serangkaian alat untuk membuat dan menjalankan aplikasi JavaScript dan TypeScript, serta runtime untuk mengeksekusi aplikasi JavaScript tanpa browser, pengelola paket (kompatibel dengan NPM), alat pengujian, pembuat paket mandiri, dan lapisan untuk menyematkan handler yang ditulis dalam C. Dari segi kinerja, Bun secara signifikan mengungguli Deno dan Node.js (dalam pengujian berdasarkan kerangka kerja React, Bun mengungguli Deno dengan faktor 2 dan Node.js dengan faktor hampir 5). Eksekusi JavaScript didukung oleh mesin JavaScriptCore dan komponen WebKit dengan patch tambahan.
Sumber: opennet.ru
