Rust sudah berpindah dari bahasa favorit para penggemar menjadi infrastruktur yang diandalkan miliaran perangkat. Android memuat jutaan baris kode Rust, kernel Linux menyatakan eksperimen Rust-nya selesai pada Desember 2025, dan sebagian besar jaringan Cloudflare berjalan di atas kode Rust. Wajar kalau klien bertanya apakah sistem mereka berikutnya juga sebaiknya ditulis dengan Rust. Kadang jawabannya ya. Lebih sering, jawaban jujurnya adalah satu bagian sistem diuntungkan oleh Rust, sedangkan sisanya lebih cocok dengan Go, Node.js, PHP, atau apa pun yang sudah dikuasai tim. Artikel ini menjelaskan di mana batasnya, dengan benchmark yang kami jalankan sendiri.
Apa yang Sebenarnya Ditawarkan Rust
Rust adalah bahasa terkompilasi dengan performa sekelas C dan C++, tetapi dengan satu perbedaan penting: compiler memeriksa cara memori dipakai. Setiap nilai punya satu pemilik, referensi dilacak, dan kode yang bisa membaca memori yang sudah dibebaskan atau mengubah data dari dua thread sekaligus tidak akan bisa dikompilasi. Tidak ada garbage collector, jadi memori dilepas di titik yang bisa diprediksi, bukan saat jeda pengumpulan sampah.
- Keamanan memori tanpa garbage collector. Seluruh kelas bug, seperti use after free, buffer overflow, dan data race di kode safe, sudah tertutup sejak kompilasi.
- Latensi yang bisa diprediksi. Tanpa jeda garbage collection, waktu respons tetap stabil di bawah beban, dan ini penting untuk proxy, sistem trading, dan pemrosesan real-time.
- Pemakaian memori rendah. Layanan Rust sering berjalan dengan sebagian kecil memori dibanding logika yang sama di runtime terkelola, artinya container lebih kecil dan server lebih murah.
- Binary tunggal yang kecil. Program Rust dikompilasi menjadi satu file executable tanpa runtime yang harus di-install, sehingga CLI tool, agent, dan deployment di edge jadi sederhana.
- Tooling yang kuat. Cargo menangani build, dependency, test, dan dokumentasi dalam satu tool, dan Clippy menangkap banyak kesalahan sebelum code review.
Rust merilis versi stabil baru setiap enam minggu; saat artikel ini ditulis, versi terbarunya Rust 1.99.1 dari Oktober 2026. Perubahan yang lebih besar dikelompokkan dalam edition, dan yang terbaru adalah edition 2024 yang dirilis bersama Rust 1.85 pada Februari 2025. Kode lama tetap bisa dikompilasi lintas versi, sehingga upgrade jauh lebih ringan dibanding banyak ekosistem lain.
Bukti dari Codebase Besar
- Android: pada November 2025 Google melaporkan bug keamanan memori turun di bawah 20 persen dari seluruh kerentanan Android untuk pertama kalinya. Dari sekitar 5 juta baris kode Rust, Google memperkirakan kepadatan kerentanan keamanan memorinya sekitar 1.000 kali lebih rendah dibanding kode C dan C++, tingkat rollback sekitar empat kali lebih rendah, dan waktu code review 25 persen lebih singkat.
- Kernel Linux: pada Desember 2025, setelah Maintainers Summit, pimpinan Rust for Linux mengirim patch berjudul "rust: conclude the Rust experiment". Rust kini menjadi bagian permanen kernel, meskipun belum semua kombinasi arsitektur dan toolchain matang.
- Cloudflare: sebagian besar lapisan proxy-nya berjalan di atas Rust. Gangguan besar pada 18 November 2025 menjadi pengingat yang berguna soal batasnya: sebuah file konfigurasi membesar melewati batas yang ditetapkan, dan kode Rust yang memanggil unwrap() pada error tersebut langsung panic. Rust mencegah bug memori, bukan bug logika atau penanganan error.
Benchmark Kami: Rust, Go, dan Node.js pada 2 Juta Baris
Benchmark berupa perulangan sempit tidak banyak bercerita soal software bisnis, jadi kami memilih pekerjaan back office yang umum: membaca file CSV 84 MB berisi 2 juta pesanan, lalu menghitung total penjualan dan jumlah pesanan per wilayah, total belanja per pelanggan beserta 5 teratas dari 50.000 pelanggan, dan total per bulan. Setiap bahasa kami tulis dua kali. Pertama dengan cara lugas seperti yang ditulis developer di hari biasa, lalu versi yang dioptimasi supaya tidak membuat string baru untuk setiap baris. Node.js hanya ditulis dengan cara lugas. Semua versi menghasilkan angka yang sama persis. Setiap angka adalah median dari lima kali jalan di AMD Ryzen 7 5700X dalam WSL2, memakai Rust 1.82, Go 1.24.2, dan Node.js 22.14.
| Versi | Rust | Go | Node.js |
|---|---|---|---|
| Lugas: waktu | 0,50 dtk | 0,49 dtk | 1,43 dtk |
| Lugas: memori puncak | 7,1 MB | 12,4 MB | 89,7 MB |
| Dioptimasi: waktu | 0,30 dtk | 0,27 dtk | Tidak diuji |
| Dioptimasi: memori puncak | 10,1 MB | 12,6 MB | Tidak diuji |
| Hasil build | Binary 475 KB | Binary 1,4 MB (di-strip) | Script ditambah runtime Node.js |
Ada tiga kesimpulan, dan yang pertama mungkin mengejutkan bagi yang mengira Rust selalu menang di setiap benchmark:
- Kecepatan Rust dan Go praktis seri. Untuk pekerjaan yang didominasi membaca file, memecah string, dan memperbarui hash map, Go sudah cepat, dan Rust tidak otomatis membuatnya lebih cepat.
- Perbedaannya terlihat di memori. Versi lugas Rust memakai sekitar 7 MB, Go sekitar 12 MB, dan Node.js sekitar 90 MB, kira-kira 12 kali lipat Rust. Kalau dikalikan puluhan layanan atau container, selisihnya terasa.
- Optimasi lebih berpengaruh daripada pilihan bahasa. Menulis kode dengan lebih cermat membuat Rust dan Go sama-sama sekitar 40 persen lebih cepat, lebih besar dari selisih antara keduanya. Node.js sekitar tiga kali lebih lambat dari keduanya, dan itu masih wajar untuk pekerjaan yang hanya berjalan sekali semalam.
Kapan Rust Sepadan
- Komponen yang memproses banyak data per request atau per detik: parser, konversi file, pemrosesan gambar dan dokumen, stream processing, indexing pencarian.
- Layanan yang sensitif terhadap tail latency, seperti gateway, proxy, matching engine, atau real-time bidding, karena tidak ada jeda garbage collection.
- Software yang berjalan dengan memori terbatas: fungsi edge, gateway IoT, container kecil, atau agent yang di-install di banyak mesin.
- CLI tool dan agent latar belakang yang sebaiknya dikirim sebagai satu file kecil tanpa meminta pengguna meng-install runtime.
- Bagian paling sibuk di dalam sistem Python atau Node.js yang sudah ada. PyO3 dan napi-rs memungkinkan satu fungsi yang lambat ditulis dengan Rust lalu dipanggil dari kode lama.
- Modul WebAssembly untuk browser, area di mana tooling Rust termasuk yang paling matang.
- Kode sensitif keamanan yang menangani input tidak tepercaya, di mana bug memori bisa berubah menjadi celah keamanan.
Kapan Biasanya Berlebihan
- Aplikasi CRUD, panel admin, dan tool internal, di mana database yang menjadi hambatan dan kecepatan development lebih penting daripada hitungan milidetik.
- MVP dan produk yang masih mencari bentuk. Rust menghargai desain yang sudah dipikirkan matang; perubahan besar yang sering lebih mahal dibanding bahasa dinamis.
- Tim yang belum punya anggota berpengalaman Rust dengan tenggat tiga bulan lagi.
- Sistem yang bergantung pada SDK payment gateway lokal, bank, atau layanan pemerintah. SDK seperti ini biasanya tersedia untuk PHP, Java, Node.js, atau Go, dan jarang untuk Rust, sehingga integrasinya harus Anda tulis dan rawat sendiri.
Biaya yang Sebenarnya
Kurva belajarnya nyata. Ownership, borrowing, lifetime, dan async Rust membuat kebanyakan developer berpengalaman butuh beberapa minggu sampai berhenti bertengkar dengan compiler, dan beberapa bulan sampai benar-benar produktif. Waktu kompilasi di proyek besar dengan banyak dependency terasa lebih lama dibanding Go. Jumlah developer Rust di Indonesia masih sedikit dibanding Go, PHP, Java, atau JavaScript, dan ini berpengaruh ke rekrutmen dan pemeliharaan jangka panjang. Semua ini bukan alasan untuk menghindari Rust, tetapi layak masuk pertimbangan di samping angka performa.
Pilih Rust untuk bagian sistem yang memang bermasalah di memori, latensi, atau keamanan, bukan untuk seluruh sistem hanya karena Rust terlihat paling cepat di grafik.
Cara Mengadopsi Rust Tanpa Menulis Ulang Semuanya
- 1Ukur dulu. Temukan komponen yang benar-benar boros CPU, memori, atau latensi, dengan data profiling, bukan perasaan.
- 2Mulai dari sesuatu yang berdiri sendiri: CLI tool, worker antrean, pemroses file, atau satu fungsi sibuk yang dipanggil lewat PyO3 atau napi-rs.
- 3Pakai stack yang umum supaya jawabannya mudah dicari: Tokio untuk async, Axum untuk HTTP, SQLx atau SeaORM untuk database, Serde untuk JSON, dan tracing untuk log.
- 4Anggap unwrap() dan expect() di jalur production sebagai temuan code review. Kembalikan error, dan tentukan secara eksplisit apa yang terjadi kalau input lebih besar atau lebih aneh dari perkiraan.
- 5Jalankan Clippy, rustfmt, dan cargo audit di CI sejak commit pertama, dan kunci versi toolchain dengan file rust-toolchain supaya semua developer membangun dengan versi yang sama.
- 6Pasangkan developer Rust baru dengan yang sudah berpengalaman di minggu-minggu awal. Sebagian besar kurva belajar adalah soal pola, dan reviewer yang baik memangkasnya banyak.
- 7Bandingkan hasil setelah rilis: biaya, memori, tingkat error, dan berapa lama perubahan dikerjakan. Perluas pemakaian Rust hanya di bagian yang angkanya membenarkan.
Rust juga mulai menjadi pilihan serius untuk aplikasi desktop, lewat Tauri untuk antarmuka berbasis web dan GPUI, framework di balik editor Zed, untuk antarmuka native yang dirender langsung oleh GPU. GPUI kami bahas di artikel terpisah.
Poin penting
- Rust memberi keamanan memori tanpa garbage collector, latensi yang bisa diprediksi, pemakaian memori rendah, dan binary tunggal yang kecil.
- Google melaporkan bug keamanan memori di kode Rust Android jauh lebih sedikit, dan kernel Linux menjadikan Rust permanen pada Desember 2025, tetapi Rust tidak mencegah bug logika atau penanganan error.
- Di benchmark 2 juta baris kami, Rust dan Go sama cepat, Node.js sekitar tiga kali lebih lambat, dan Rust memakai memori paling sedikit: sekitar 7 MB dibanding 12 MB untuk Go dan 90 MB untuk Node.js.
- Rust sepadan untuk komponen yang berat di data, layanan yang sensitif latensi, deployment dengan memori terbatas, CLI tool, dan bagian paling sibuk di sistem yang sudah ada.
- Untuk aplikasi CRUD, MVP, dan tim tanpa pengalaman Rust, Go, Node.js, atau PHP biasanya pilihan yang lebih praktis.
- Adopsi Rust satu komponen terukur dalam satu waktu, dengan crate yang umum dipakai, penanganan error yang ketat, dan pemeriksaan CI sejak hari pertama.


