Perbandingan Tauri dan Electron - performa, ukuran bundle, dan trade-off di dunia nyata
(gethopp.app)- Saat mengembangkan aplikasi remote control berlatensi sangat rendah untuk remote pair programming, Hopp mengadopsi Tauri sebagai framework aplikasi
- Alasan pemilihannya antara lain performa, efisiensi memori, dukungan sidecar, dan lainnya
- Dengan backend berbasis Rust + penggunaan WebView sistem, ukuran aplikasi dan penggunaan memori jauh lebih kecil dibanding Electron
- Di Tauri v2, kesenjangan fitur juga cepat teratasi, dengan fitur inti seperti auto-update dan sidecar yang sudah terintegrasi
- Electron tetap kuat, tetapi untuk kebutuhan khusus Hopp, Tauri lebih cocok
Mengapa Hopp memilih Tauri
Latar belakang: memilih framework aplikasi lintas platform
- Hopp membutuhkan aplikasi desktop berperforma tinggi yang berjalan sama di Windows, macOS, dan Linux
- Electron dan Tauri adalah dua pilihan utama, dan masing-masing memiliki kelebihan serta kekurangan yang jelas
- Tim Hopp memilih dengan mengutamakan kemudahan pemeliharaan jangka panjang dan performa
Tauri vs. Electron: perbedaan struktural
-
Struktur Electron
- Perlu menyertakan runtime Node.js → ukuran aplikasi membesar
- Setiap jendela menggunakan proses renderer terpisah (engine Chromium) → konsumsi memori besar
- Integrasi mendalam dengan sistem memerlukan proses tambahan
-
Ringkasan struktur Tauri
- Backend berupa binary native berbasis Rust → tidak memerlukan runtime terpisah
- Menggunakan WebView sistem (Windows: WebView2, macOS: WKWebView, Linux: WebKitGTK)
- Efisiensi memorinya baik seiring jumlah jendela bertambah, tetapi perlu mengelola isu ketidaksesuaian engine browser
Perbandingan fitur inti
- Waktu startup Tauri dan Electron sama-sama cepat, dan secara pengalaman tidak ada perbedaan besar
- Dalam penggunaan memori, Tauri jauh lebih hemat
- Tauri menggunakan sekitar 172MB memori
- Electron sekitar 409MB, sehingga mengonsumsi lebih dari 2 kali lipat memori
- Dari sisi engine rendering
- Tauri menggunakan WebView bawaan sistem operasi, sehingga ukuran aplikasi kecil dan ringan
- Electron menyertakan engine Chromium langsung di dalam aplikasi, sehingga memakai lebih banyak resource
- Untuk bahasa backend
- Tauri menggunakan Rust, sehingga memungkinkan penulisan kode native berperforma tinggi
- Electron berbasis JavaScript(Node.js), akrab bagi web developer tetapi performanya relatif lebih rendah
- Untuk waktu build awal
- Tauri menyertakan kompilasi Rust sehingga build awal lebih lambat
- Electron berbasis JS sehingga build awal lebih cepat
- Dalam perbandingan ukuran aplikasi
- Tauri sekitar 8.6MiB, sangat ringan
- Electron sekitar 244MiB, atau sekitar 28 kali lebih besar
Alasan paling menentukan Hopp memilih Tauri
-
1. Backend Rust berperforma tinggi
- Perlu mengimplementasikan streaming video berlatensi sangat rendah berbasis WebRTC
- Di Electron harus menjalankan proses terpisah, tetapi di Tauri bisa diimplementasikan langsung di backend Rust
-
2. Dukungan proses sidecar
- Streaming dan pemrosesan input dikelola dengan memisahkannya ke binary terpisah
- Tauri mendukung sidecar secara resmi → pengelolaan siklus hidup dan komunikasi menjadi mudah
- Ke depan, mereka juga mempertimbangkan ekspansi ke Tauri egui untuk rendering kursor
-
3. Dukungan fitur yang berkembang cepat
- Tauri v2 sudah menyertakan fitur inti seperti auto-update
- Meski relatif lebih baru dibanding Electron, visi yang berfokus pada keamanan dan performa selaras dengan Hopp
Kesimpulan: framework mana yang lebih baik?
- Electron dan Tauri sama-sama framework aplikasi desktop yang sangat baik
- Pilihan dapat berbeda tergantung karakter proyek
- Electron: pengembangan cepat, ramah JS, ekosistem luas
- Tauri: lebih kecil, lebih ringan, lebih cepat, dan dioptimalkan untuk performa berbasis Rust
- Hopp mengadopsi Tauri karena memerlukan tech stack yang berfokus pada performa serta konfigurasi proses terpisah
6 komentar
Saya menggunakan webui. Ukurannya juga kecil dan ketergantungan runtime jauh lebih sedikit.
Akan lebih bagus kalau Wails juga ikut dibandingkan.
Sebaliknya, saya justru menangkapnya sebagai bahwa dalam kebanyakan kasus Electron sudah cukup.
Mungkin karena saya masih punya ingatan bahwa pengalaman komunikasi back-front di masa awal Tauri tidak terlalu bagus...
Perbedaan mesin browser memang terasa seperti isu besar, tetapi jika mempertimbangkan dukungan termasuk mobile, rasanya juga tidak sebesar itu.
Kalau masalah ukuran aplikasi besar, sepertinya memang paling tepat langsung memilih Tauri.
Sepertinya saya perlu mencobanya dulu untuk melihat apakah ini pilihan yang tepat dari sisi ukuran, memori, dan sidecar! Terima kasih atas pengenalannya.