Membangun aplikasi desktop dengan memanfaatkan teknologi web (HTML, CSS, dan JavaScript) telah menjadi standar industri selama bertahun-tahun. Keuntungannya sangat jelas: kita bisa menggunakan keahlian frontend yang sama untuk membuat aplikasi desktop lintas platform (cross-platform). Aplikasi raksasa seperti VS Code, Discord, dan Slack dibangun dengan pendekatan ini.
Namun, selama bertahun-tahun pula, **Electron** menjadi satu-satunya pemain dominan di ranah ini. Electron terkenal sangat boros memori (RAM) dan menghasilkan ukuran file installer yang sangat besar. Untungnya, kini hadir penantang kuat: **Tauri v2**. Di artikel ini, kita akan bahas perbandingan praktis antara keduanya untuk membantu Anda memilih framework yang tepat untuk proyek desktop Anda berikutnya (seperti yang gue lakukan saat memilih Tauri v2 untuk proyek **ShellMate**).
Bagaimana Keduanya Bekerja?
- Electron: Membundel seluruh mesin browser Chromium dan runtime Node.js ke dalam aplikasi Anda. Artinya, setiap aplikasi Electron yang dijalankan pada dasarnya adalah browser Chrome utuh yang berjalan di latar belakang khusus untuk merender UI Anda.
- Tauri v2: Alih-alih menyertakan Chromium, Tauri menggunakan mesin webview bawaan yang sudah ada di dalam sistem operasi masing-masing (Webkit/Safari di macOS, WebView2 di Windows, dan WebKitGTK di Linux). Untuk backend-nya, Tauri menggunakan bahasa pemrograman Rust yang sangat cepat dan aman secara memori.
Perbandingan Metrik Utama
1. Ukuran Installer (File Size)Karena Electron membawa "browser sendiri", ukuran aplikasi terkecil sekalipun akan berkisar antara 80MB hingga 150MB saat diunduh. Sementara itu, Tauri hanya membawa kode HTML/JS Anda dan kode biner Rust. Hasilnya? Ukuran installer aplikasi Tauri bisa sekecil 2MB hingga 10MB saja. Ini adalah penghematan penyimpanan yang luar biasa bagi pengguna.
2. Konsumsi Memori (RAM)Menjalankan Chromium bawaan Electron secara instan memakan RAM sekitar 80MB - 120MB pada kondisi idle (belum melakukan komputasi berat). Tauri, karena menggunakan native webview OS dan backend Rust yang efisien, hanya memakan memori sekitar 15MB - 30MB pada kondisi idle. Perbedaan ini sangat terasa pada perangkat dengan spesifikasi rendah.
3. Bahasa Pemrograman BackendDi Electron, backend ditulis menggunakan Node.js (JavaScript/TypeScript). Kelebihannya adalah kurva pembelajarannya sangat landai bagi frontend developer, dan kita bisa menggunakan jutaan library dari npm. Di Tauri, backend ditulis menggunakan Rust. Kelebihannya adalah kecepatan performa setara C/C++ dan keamanan memori yang tinggi, namun kurva pembelajarannya cukup terjal jika Anda belum terbiasa dengan konsep kepemilikan memori (ownership) di Rust.
Kapan Harus Memilih Electron?
Electron tetap menjadi pilihan yang solid jika:
- Anda membutuhkan konsistensi rendering mutlak di semua sistem operasi (karena Chromium yang dipakai versinya selalu sama).
- Aplikasi Anda sangat bergantung pada modul Node.js native (C++ addons) yang kompleks.
- Tim Anda tidak memiliki waktu atau kapasitas untuk mempelajari Rust, dan ingin merilis produk secepat mungkin menggunakan ekosistem JavaScript utuh.
Kapan Harus Memilih Tauri v2?
Tauri v2 adalah pemenang mutlak jika:
- Anda membangun utilitas sistem atau aplikasi tray yang harus berjalan ringan di latar belakang tanpa membebani sistem operasi (seperti terminal SSH client **ShellMate**).
- Ukuran unduhan yang kecil adalah metrik penting untuk retensi pengguna Anda.
- Aplikasi Anda membutuhkan keamanan tinggi di level lokal, misalnya untuk melakukan enkripsi kredensial (kunci SSH/password) menggunakan pustaka Rust yang teruji (Argon2id + AES-256-GCM).
- Anda juga ingin mengekspos aplikasi tersebut ke platform Mobile (Android & iOS) di masa mendatang, karena Tauri v2 kini sudah mendukung native mobile compilation.
Kesimpulan
Electron masih relevan untuk aplikasi enterprise berskala raksasa, namun untuk sebagian besar aplikasi modern, **Tauri v2 menawarkan masa depan yang jauh lebih cerah, ringan, dan aman**. Jika Anda bersedia meluangkan waktu mempelajari dasar-dasar Rust, Tauri v2 akan memberikan performa aplikasi desktop yang akan membuat pengguna Anda terkesan.
Commit. Push. Repeat.