Bun Dihitung Ulang dalam Rust: Rewrite Massal dengan Bantuan Claude AI
AW
Axel W

Dipublikasikan 21 Agustus 2026

Bun Dihitung Ulang dalam Rust: Rewrite Massal dengan Bantuan Claude AI

Projek runtime JavaScript yang cukup populer, Bun, baru-baru ini mengejutkan komunitas developer dengan pengumuman rewrite besar-besaran. Seluruh codebase Bun yang sebelumnya ditulis dalam Zig, kini telah diporting ke Rust. Yang lebih menarik, proses rewrite ini dilakukan dengan bantuan AI: sekitar 64 instance Claude bekerja paralel selama 11 hari untuk memindahkan 535.496 baris kode Zig ke Rust.

Jarred Sumner, pembuat Bun, menjelaskan seluruh proses dalam sebuah blog post detail. Proyek ini dimulai dari frustrasi akan bug memori yang terus berulang di codebase Zig, dan berakhir dengan codebase Rust yang lebih stabil, lebih cepat, dan lebih mudah dipelihara.

Mengapa Rust, Mengapa Sekarang

Bun awalnya ditulis dalam Zig karena bahasa tersebut menawarkan kontrol level rendah dan performa tinggi. Jarred menulis baris pertama Zig pada April 2021 dan dalam satu tahun berhasil membangun runtime JavaScript lengkap dengan transpiler, package manager, test runner, dan HTTP client. Namun, seiring pertumbuhan proyek, masalah stabilitas muncul.

Daftar bug yang diperbaiki dalam versi 1.3.14 saja mencakup use-after-free, double-free, memory leak, dan race condition di berbagai modul seperti node:zlib, node:http2, dan UDPSocket. Masalah ini muncul karena JavaScript adalah bahasa garbage-collected, sementara Zig tidak mengelola memori secara otomatis. Menangani lifetime antara garbage-collected values dan manually-managed values menjadi sumber utama masalah stabilitas.

Sumner menjelaskan bahwa meski Zig memiliki defer dan errdefer untuk cleanup, setiap alokasi memori harus ditinjau secara meticulouse. Di mana byte ini dibebaskan? Bagaimana memastikan hanya dibebaskan sekali? Apakah pointer garbage-collected ini terlihat oleh conservative stack scanner? Pertanyaan-pertanyaan ini harus dijawab untuk setiap alokasi memori, dan kesalahan kecil bisa berujung crash atau leak.

Proses Rewrite dengan 64 Claude

Sebelum memulai, tim melakukan persiapan matang. Selama tiga jam, Jarred berdiskusi dengan Claude untuk membuat dokumen PORTING.md yang memetakan pola Zig ke pola Rust. Dokumen ini kemudian viral di Hacker News. Setelah itu, mereka membuat LIFETIMES.tsv yang mencatat lifetime untuk setiap struct field di codebase.

Proses rewrite dilakukan dengan dynamic workflows di Claude Code. Pada puncaknya, 64 instance Claude berjalan paralel di 4 worktree terpisah, masing-masing dengan 16 Claude. Workflow ini menghasilkan sekitar 1.300 baris kode per menit, dengan setiap perubahan direview oleh dua adversarial reviewer (juga Claude) sebelum dicommit.

Adversarial review adalah teknik di mana satu Claude implementer menulis kode, sementara dua Claude reviewer terpisah dalam context window berbeda mencari bug dan alasan mengapa kode tidak akan bekerja. Reviewer hanya mendapat diff tanpa reasoning dari implementer, memaksa mereka menemukan masalah secara objektif. Teknik ini berhasil menangkap beberapa bug subtle sebelum merge, termasuk use-after-free di async pipe closing yang terlihat benar secara sintaksis tapi salah secara semantik.

Selama 11 hari, proses ini menghasilkan 6.502 commit. Setelah semua kode ditulis, Claude memperbaiki sekitar 16.000 compiler error, yang dibagi ke 64 Claude berdasarkan crate. Dua hari setelah CI pertama, jumlah test file yang gagal turun dari 972 menjadi 23. Satu setengah hari kemudian, Linux fully green, dan akhirnya semua platform termasuk Windows berhasil lulus test suite.

Hasil dan Peningkatan Performa

Rewrite ke Rust membawa hasil konkret yang signifikan. Bun v1.4.0 memperbaiki 128 bug yang bisa direproduksi di v1.3.14, mulai dari memory leak hingga crash dan miscolored help text. Berkat sistem Drop di Rust, Bun berhasil memperbaiki memory leak yang sebelumnya sulit ditangani di Zig.

Dalam satu benchmark, membangun proyek 60-modul sebanyak 2.000 kali dalam satu proses menunjukkan perbedaan drastis. Bun v1.3.14 bocor sekitar 3 MB per build, mencapai 6.745 MB total setelah 2.000 build. Bun v1.4.0 dengan Rust stabil di 609 MB. Ini adalah perbaikan lebih dari 10x dalam efisiensi memori untuk use case long-running seperti dev server.

Ukuran binary juga mengecil signifikan. Kombinasi rewrite Rust, optimasi linker, dan kompresi libicu memperkecil binary sekitar 20%. Di Linux, binary turun dari 88 MB menjadi 70 MB. Di Windows, dari 94 MB menjadi 76 MB.

Dalam hal kecepatan, Bun v1.4.0 menunjukkan peningkatan 2-5% di berbagai workload. Server Bun.serve mencapai 177.7k req/s dibanding 169.6k req/s sebelumnya. Next build mempercepat 4.5% dan tsc force build 4.7%.

Pelajaran untuk Komunitas Developer

Proses rewrite Bun menunjukkan bahwa AI bisa digunakan untuk tugas engineering skala besar, bukan hanya snippet kode kecil. Namun, kunci keberhasilannya bukan pada AI itu sendiri, melainkan pada proses yang dirancang dengan baik: test suite komprehensif, adversarial review, dan pemantauan manusia yang ketat.

Biaya total proses ini sekitar 165.000 dolar dalam API pricing, dengan 5.9 miliar input tokens dan 690 juta output tokens. Menurut estimasi Sumner, pekerjaan ini akan membutuhkan 3 engineer dengan full context selama satu tahun jika dikerjakan manual. Dengan AI, satu engineer bisa mengawasi proses ini hingga selesai dalam 11 hari, sementara 64 instance Claude menangani pekerjaan mekanisnya.

Bagi developer di Indonesia, kisah ini menunjukkan bahga AI tidak menggantikan engineer, melainkan memperkuat mereka. Engineer yang memahami arsitektur, bisa mendesain proses yang baik, dan tahu kapan harus mengawasi akan menjadi semakin berharga di era ini. Kemampuan untuk memanfaatkan AI sebagai multiplier, bukan pengganti, akan menjadi differentiator utama antara engineer biasa dan engineer elite di tahun-tahun mendatang.

Sumber: bun.com/blog/bun-in-rust, Andrew Kelley