22 poin oleh GN⁺ 2025-05-29 | 7 komentar | Bagikan ke WhatsApp
  • 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

 
choyunsung79 2025-06-02

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.

 
bus710 2025-05-30

Kalau pakai Flutter, rinf juga bagus sekali.

 
aer0700 2025-05-29

Saya sudah pernah memakai Electron, tetapi belum pernah mencoba Tauri, jadi sepertinya saya memang perlu mencobanya setidaknya sekali.

 
GN⁺ 2025-05-29
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

    • Di kreya.app kami memakai system webview buatan sendiri secara langsung, jadi bukan Tauri, dan dalam praktiknya perbedaan platform hampir tidak jadi masalah. Sebagian besar bisa diatasi dengan polyfill, dan kami menjalankan automated end-to-end test di Linux untuk menemukan kebanyakan masalah. Yang paling sulit adalah mengetahui seberapa tertinggal versi webview milik pengguna. Ini masalah besar di Linux dan Mac, sedangkan Windows jauh lebih baik berkat WebView2
    • Sebenarnya saya belum mendistribusikan versi Tauri secara lintas platform, jadi itu akan saya cek nanti. Untungnya kebutuhan UI-nya sederhana. Saya penasaran perbedaan rendering seperti apa yang Anda alami di Tauri. Saya juga ingin tahu di platform mana aplikasi Anda paling bagus atau paling bermasalah. Kami juga ingin mendukung Windows. Di versi Electron, kami sempat punya masalah menjalankan bundled binary di Mac berbasis Intel, dan itu sangat merepotkan, jadi saat rebuild ke Tauri kami memutuskan untuk fokus dulu pada satu platform, yaitu Mac berbasis Apple chip. Kami memakai Tauri 1.4 dan sejauh ini belum ada masalah. Dokumentasi migrasi 2.0 juga akan saya lihat nanti
    • Soal pertanyaan apakah pernah mengalami bug UI lintas platform, tentu tidak relevan karena saat ini kami hanya mendukung Mac. Kalau kami juga mencoba mendukung Windows dan Linux, rasanya artikel ini pun tidak akan sempat terbit. UI lintas platform memang sangat sulit, apalagi kalau ingin mempertahankan UI dan set fitur yang sama sambil memikirkan versi online juga. Karena itulah banyak orang berpindah dari native ke Qt lalu ke web stack. Dari pengalaman saya yang bekerja di perusahaan pengembang desktop app lintas platform dengan jutaan pengguna, saya hampir tidak bisa membayangkan cara lain
    • Saat saya memakai Tauri V2 sekitar 6 bulan lalu, dokumentasinya benar-benar berantakan. Proyeknya sendiri menjanjikan, tetapi karena hampir tidak ada referensi, implementasinya benar-benar menyiksa
    • Baru-baru ini Tauri mengumumkan kabar seperti ini: tahun ini mereka akan memperkenalkan teknologi baru seperti webview berbasis CEF dan SERVO, diumumkan di Discord
  • 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 penasaran soal perbedaan Tauri dan Electron. Setahu saya, keduanya sama-sama memakai browser untuk rendering, tetapi Electron menyertakan seluruh browser-nya sendiri, sedangkan Tauri memakai browser yang sudah ada di sistem
    • Menurut saya itu luar biasa. Saya penasaran itu produk apa. Kami juga sedang bersiap submit ke App Store minggu ini
  • 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

    • Saya senang bisa berbagi pengalaman. Keputusan untuk membangun ulang sesuatu yang sebenarnya sudah berjalan bukanlah keputusan yang mudah, tetapi pada akhirnya saya puas
  • 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

    • Ada materi perbandingan terbaru yang diunggah 2 minggu lalu. Bisa dilihat di web-to-desktop-framework-comparison. Electron cukup kompetitif dalam performa runtime. Menurut saya, yang perlu lebih diperhatikan adalah penggunaan memori daripada ruang disk.
      • Penggunaan memori Windows (x64) (single window, release build):
      1. Electron: sekitar 93MB
      2. NodeGui: sekitar 116MB
      3. NW.JS: sekitar 131MB
      4. Tauri: sekitar 154MB
      5. Wails: sekitar 163MB
      6. Neutralino: sekitar 282MB
      • Mac (arm64):
      1. NodeGui: sekitar 84MB
      2. Wails: sekitar 85MB
      3. Tauri: sekitar 86MB
      4. Neutralino: sekitar 109MB
      5. Electron: sekitar 121MB
      6. NW.JS: sekitar 189MB
      • Linux (x64):
      1. Tauri: sekitar 16MB
      2. Electron: sekitar 70MB
      3. Wails: sekitar 86MB
      4. NodeGui: sekitar 109MB
      5. NW.JS: sekitar 166MB
      6. Neutralino: sekitar 402MB
    • Saya ingin melihat lebih banyak materi perbandingan seperti ini
  • 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

    • Ini mungkin pertama kalinya saya melihat orang begitu memuji distribusi/update lewat native app store.
      Saya khawatir soal waktu persetujuan update dan ketidakpastiannya, jadi saya penasaran apa yang membaik saat pindah dari Squirrel ke native
    • Saya penasaran berapa lama proses transisinya
  • Kalau aplikasi akhirnya hanya untuk Mac, saya benar-benar penasaran kenapa memilih Rust/Tauri alih-alih Swift/SwiftUI

    • Terima kasih sudah mengecek. Tujuan Desktop Docs adalah lintas platform. Ada banyak permintaan dukungan Windows, jadi saya memilih Rust untuk mempersiapkan versi Windows ke depan
    • Saya juga ingin menanyakan hal yang sama. Menurut saya Swift adalah bahasa yang cukup bagus dan punya banyak kelebihan yang mirip dengan Rust. Saya juga penasaran soal integrasi CLIP, dan cerita porting-nya juga sangat menarik
    • Saya juga penasaran. Saya akan membuat desktop app sebentar lagi, sudah lama memakai Swift dan hanya tahu sedikit sekali tentang Rust. Tauri terlihat sangat menarik. Aplikasi Electron selalu mulai dengan sangat lambat bahkan di PC yang cepat. Terima kasih atas insight-nya
  • 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

    • Saya penasaran apa pemicu mendasarnya sampai Anda mulai mempertimbangkan porting
  • 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

    • Terima kasih atas masukannya. Dari sisi infrastruktur kami memang belum bisa mengimplementasikan trial, tetapi akan kami pertimbangkan di masa depan.
      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
 
secret3056 2025-05-29

Dalam tabel perbandingan performa yang ditautkan di HN, Electron tampaknya lebih baik daripada Tauri dalam sebagian besar kasus....

 
majorika 2025-05-29

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.

 
wfedev 15 hari lalu

Hmm, sepertinya sebagian besar masalah lebih banyak berasal dari isu mesin WebView + OS/driver daripada perbedaan antara Electron atau Tauri itu sendiri.