- Pengembang menulis ulang Desktop Docs, yang sebelumnya merupakan aplikasi Electron untuk Mac, dengan Rust, dan pada akhirnya itu adalah pilihan yang tepat
- Aplikasi awal yang dibuat dengan Electron berukuran besar, 1GB, dan memiliki masalah performa hingga sering crash
- Terutama ada masalah penurunan performa saat memproses gambar/video skala besar
- Hasil rebuild dengan Rust + Tauri membuat ukuran aplikasi turun 83%, kecepatan indexing meningkat lebih dari 3 kali lipat, dan stabilitas juga membaik
- Ukuran aplikasi: 1GB → 172MB (turun 83%)
- File installer: 232MB → 69.5MB (turun 70%)
- Indexing video: untuk video berdurasi 38 menit, 10~14 menit → dipangkas menjadi 3 menit
- Jauh lebih stabil dibanding aplikasi Electron yang tidak stabil
- Proses rebuild dan pilihan teknis
- Bahkan saat berjalan di latar belakang, aplikasi Electron membuat Chromium sendiri memakai lebih dari 200MB memori, bahkan panggilan video pun dapat memicu crash
- Pada aplikasi baru, embedding CLIP dan vector store Redis tetap digunakan
- Namun seluruh pipeline pemrosesan gambar/video dan file I/O ditulis ulang dengan Rust
- UI juga ditulis ulang dari nol alih-alih mem-porting kode lama, dan hasilnya adalah antarmuka yang lebih rapi dan sederhana
- Kesulitan teknis
- Kurva belajar Rust tinggi, dan komunitas Tauri masih belum sematang Electron
- Saat membundel Redis ke dalam aplikasi, ada masalah penanganan izin dan distribusi
- Meski begitu, dibanding Electron, kontrol menyeluruh dan performa secara umum meningkat
- Kesimpulan
- Kesetaraan fitur penuh masih belum tercapai, tetapi fitur inti berjalan jauh lebih cepat dan lebih stabil
- “Kode yang berjalan tetapi dibuat dengan salah harus berani dibuang”
7 komentar
Electron menyertakan Chromium, sedangkan Tauri menggunakan engine yang terpasang di OS, jadi ada perbedaan.
Tauri (OS WebView) lebih menguntungkan saat membutuhkan distribusi yang ringan dan performa cepat,
namun untuk layanan yang mengutamakan keamanan, keandalan, dan kontrol fitur, pendekatan Electron (dengan Chromium bawaan) lebih cocok.
Saya tidak terlalu tahu masalah pada kodenya, tetapi saya rasa karakteristik platform sangat berpengaruh.
Kalau pakai Flutter,
rinfjuga bagus sekali.Saya sudah pernah memakai Electron, tetapi belum pernah mencoba Tauri, jadi sepertinya saya memang perlu mencobanya setidaknya sekali.
Komentar Hacker News
Saya sedang membuat aplikasi desktop dengan Rust dan egui, tetapi karena ini pertama kalinya saya memakai Rust sekaligus mengembangkan desktop app, rasanya sulit harus mempelajari terlalu banyak konsep sekaligus. Bidang saya adalah alat analisis teknik mesin, jadi backend butuh performa tinggi dan frontend perlu visualisasi data. Saya penasaran apakah saat memakai Tauri terasa sulit harus mengelola beberapa stack seperti rust, js, html sekaligus
Saya baru-baru ini pernah memindahkan proyek dari Tauri ke Electron. Saya pusing karena perbedaan rendering webview yang dipakai di berbagai platform. Saya penasaran apakah Anda juga pernah mengalami bug UI lintas platform. Kebutuhan UI saya sederhana dan komputasinya kompleks, jadi meskipun ada biaya QA, menurut saya tetap sepadan. Saya ingin tahu apakah pengalaman saya itu kasus yang tidak biasa, atau perbedaan rendering memang masalah yang umum. Dan saya juga penasaran apakah Anda memakai Tauri 1.0 atau 2.0. Saya memakai 2.0 yang rilis stabil saat saya sedang migrasi dari v1, dan migrasinya benar-benar mimpi buruk, dokumentasinya juga sangat kurang. Saya penasaran apakah sekarang dokumentasinya sudah membaik
Saya juga pernah menempuh jalur yang mirip. Saya membuat webcam viewer sederhana yang dioptimalkan untuk mikroskop USB, karena tidak ada yang cukup bagus jadi saya buat sendiri. Hampir semua fitur saya implementasikan di renderer. Saat bersiap untuk submit ke App Store, saya mulai bertanya-tanya apakah webcam viewer berukuran 500mb itu masuk akal, jadi saya port ke Tauri V2 dan ukurannya turun menjadi sekitar 15mb
Saya sangat suka dengan tujuan aplikasi ini. Aplikasi lain di bidang ini sering terlalu lambat dan merepotkan, jadi saya sangat tertarik dengan rewrite ini. Hanya saja saya seorang fotografer, jadi sebagian besar media saya berformat RAW, dan saya tidak yakin apakah itu didukung, atau mungkin tidak kalau melihat RAW tidak disebut dalam “semua format gambar dan video utama”. Saya penasaran apakah ada dokumentasi resmi, forum pengguna, atau kanal lain untuk mengecek detail seperti ini
Saya bukan pengguna Mac dan tim kami juga tidak mempertimbangkan rewrite ke Rust, tetapi saya sangat senang membaca artikel ini. Dari “Show HN”, saya memang berharap tulisan sepanjang ini yang merangkum trade-off teknis yang diperlukan untuk menyelesaikan masalah nyata. Terima kasih
Akan sangat bagus kalau ada benchmark terbaru yang membandingkan Tauri, Flutter, Electron, React Native, dan framework lintas platform modern lainnya. Metrik utamanya bisa berupa ukuran bundle, penggunaan memori (RAM), waktu startup, penggunaan CPU saat dibebani, dan ruang disk. Khusus untuk framework seperti Tauri yang rendering dan performanya bisa berubah tergantung versi webview, akan bagus juga jika disertakan matriks kompatibilitas per platform seperti WebView2, WKWebView, dan sebagainya. Jika perbedaan seperti ini diringkas secara visual dalam tabel, developer akan bisa membuat pilihan yang jauh lebih baik
Di perusahaan lama saya, saya pernah memelihara desktop app Electron untuk Windows dan Mac. Aplikasinya terlalu berat, dan update dengan Squirrel sangat menyiksa.
Pada akhirnya kami tetap memakai GUI berupa web SPA berbasis Inferno, tetapi hal-hal seperti loading webview kami ganti dengan native app kecil di masing-masing platform, C# dan Swift. Hasilnya ukuran unduhan dan penggunaan memori turun sekitar 90%, dan distribusi serta update dipindahkan ke app store masing-masing platform. Menurut saya itu keputusan terbaik
Saya khawatir soal waktu persetujuan update dan ketidakpastiannya, jadi saya penasaran apa yang membaik saat pindah dari Squirrel ke native
Kalau aplikasi akhirnya hanya untuk Mac, saya benar-benar penasaran kenapa memilih Rust/Tauri alih-alih Swift/SwiftUI
Saya penasaran apa yang membuat Anda memilih Tauri alih-alih egui. Apakah karena pengalaman dengan Electron? Saya juga ingin mem-port aplikasi Qt Python ke Rust, tetapi saya khawatir pustaka GUI Rust saat ini belum sekomplet Qt, dan akhirnya saya akan mentok di tengah jalan
Saat melihat tombol "Try" di landing page utama, pengguna bisa merasa seolah ada versi trial, padahal sebenarnya langsung menuju pembelian. Akan bagus kalau ada trial seminggu saja.
Saya suka kebijakan backup license permanen. $99 adalah hambatan masuk yang cukup tinggi, tetapi kalau targetnya kreator/studio masih masuk akal; untuk konsumen umum mungkin $20-$25 terasa cocok.
Tulisan ini menekankan performa, tetapi landing page sama sekali tidak menyebutnya. Seperti video berdurasi 38 menit itu, informasi seperti berbagai benchmark, pekerjaan paralel, dan kebutuhan VRAM juga penting. Saya penasaran bagaimana performanya saat menangani ratusan sampai ribuan jam media.
Menarik sekali bahwa pekerjaan yang di Electron memakan 10~14 menit bisa menjadi 3 menit di Tauri. Kalau Electron hanya mengorkestrasi CLIP dan ffmpeg, saya penasaran overhead sebesar itu datang dari mana.
Dulu saya juga pernah membuat alat pencarian media berbasis transkripsi video dengan Electron, dan saya hampir tidak mengalami masalah performa.
Biasanya alasan memilih Electron atau Tauri adalah lintas platform, jadi saya penasaran kenapa dari awal hanya Mac, apalagi untuk pemrosesan media besar yang juga bisa memanfaatkan nvidia.
Saya sendiri baru-baru ini memakai Swift lagi setelah 10 tahun, sempat menimbang Tauri lalu memilih Swift untuk proyek baru, dan dibanding sekitar 2014 perkembangannya luar biasa sampai terasa hampir mulus.
Kalau bagian tentang pengguna aktif itu benar, sepertinya Anda sudah cukup berhasil. Saya penasaran apakah sebelumnya Anda sudah punya jaringan atau audiens di industri studio/kreator. Saya juga ingin mendengar soal pemasarannya
Anda bilang pernah membuat alat serupa sendiri, saya penasaran kenapa tidak dirilis.
Versi Windows dan Linux juga rencananya akan dirilis dalam beberapa bulan ke depan jika ada permintaan.
Pengguna kami dapatkan dari HN, peluncuran di reddit, dan sedikit promosi di linkedin. Sebagian besar datang dari mulut ke mulut.
Soal performa Electron dan pemrosesan video, kalau dibahas lebih dalam sebenarnya banyak yang bisa diceritakan. Saya juga bukan ahli Electron, jadi mungkin saja bottleneck muncul karena kami tidak memakai worker dengan benar.
Saat beralih ke rust, kami juga menambahkan scene detection untuk mengurangi jumlah frame yang perlu diindeks, sehingga beban pemrosesan turun cukup besar. Kami juga menambahkan opsi akselerasi GPU di ffmpeg sehingga performanya meningkat lumayan banyak. Pembuatan image embedding juga kami optimalkan dengan batch processing. Namun kalau dipaksa terlalu jauh, instance model bisa crash juga
Dalam tabel perbandingan performa yang ditautkan di HN, Electron tampaknya lebih baik daripada Tauri dalam sebagian besar kasus....
Kandungan perbandingan performa di komentar terasa cukup kuat seperti mengambil angka-angka yang menguntungkan Electron dari nilai yang ada di repositori tersebut. Meski angkanya sedikit berbeda, bagian dengan nilai yang paling mirip adalah perbandingan 'selisih memori bebas sebelum dijalankan dan sesudah dijalankan'. Namun, pada item tepat di atasnya, total penggunaan memori proses utama dan proses anak saat berjalan tercatat 258M untuk Electron, jadi rasanya sulit menerima bagian yang menyebut perubahan penggunaan memori sebelum dan sesudah dijalankan hanya 91MB. Di balasan komentar HN juga ada isi yang menyebut bahwa waktu startup aplikasi yang dibuat dengan Tauri tercatat lebih dari 7 detik, sehingga angka pengukuran di repositori itu sulit dipercaya.
Hmm, sepertinya sebagian besar masalah lebih banyak berasal dari isu mesin WebView + OS/driver daripada perbedaan antara Electron atau Tauri itu sendiri.