22 puan yazan GN⁺ 2025-05-29 | 7 yorum | WhatsApp'ta paylaş
  • Geliştirici, daha önce Mac için Electron uygulaması olan Desktop Docs'u Rust ile yeniden yazdı ve sonuç olarak bunun doğru bir karar olduğunu söylüyor
  • Electron ile yapılan ilk uygulama 1GB boyutundaydı ve performans sorunları nedeniyle sık sık çöküyordu
    • Özellikle büyük ölçekli görsel/video işleme performansında düşüş sorunu vardı
  • Rust + Tauri ile yeniden inşa edildiğinde uygulama boyutu %83 azaldı, indeksleme hızı 3 kattan fazla arttı ve kararlılık da iyileşti
    • Uygulama boyutu: 1GB → 172MB (%83 azalma)
    • Kurulum dosyası: 232MB → 69.5MB (%70 azalma)
    • Video indeksleme: 38 dakikalık video için 10~14 dakika → 3 dakikaya indi
    • Kararsız Electron uygulamasına kıyasla çok daha stabil çalışma
  • Yeniden inşa süreci ve tercihleri
    • Electron uygulamasında arka planda bile Chromium tek başına 200MB'tan fazla bellek kullanıyordu, hatta görüntülü aramalar bile çökme nedeni oluyordu
    • Yeni uygulamada da CLIP embedding'leri ve Redis vektör deposu aynen kullanıldı
    • Ancak Rust ile görüntü/video işleme ve dosya I/O için tüm pipeline baştan yazıldı
    • UI da mevcut kodu taşımak yerine sıfırdan yeniden yazıldı ve sonuçta daha temiz ve sade bir arayüz ortaya çıktı
  • Teknik zorluklar
    • Rust'ın öğrenme eğrisi yüksek, Tauri topluluğu da hâlâ Electron kadar olgun değil
    • Redis'i uygulamaya bundle etme sürecinde izin yönetimi ve dağıtım sorunları yaşandı
    • Buna rağmen Electron'a göre genel kontrol ve performans iyileşti
  • Sonuç
    • Henüz tam özellik eşdeğerliği sağlanmamış olsa da çekirdek özellikler çok daha hızlı ve stabil çalışıyor
    • Çalışıyor ama yanlış yazılmış kod, cesurca çöpe atılmalıdır

7 yorum

 
choyunsung79 2025-06-02

Electron, Chromium’u gömülü olarak içeriyor; Tauri ise işletim sistemine kurulu motoru kullandığı için aralarında fark var.

Tauri (OS WebView), hafif dağıtım ve hızlı performans gerektiğinde avantajlıdır;
ancak güvenlik, güvenilirlik ve özellik kontrolünün önemli olduğu servislerde Electron (gömülü Chromium) yaklaşımı daha uygundur.

Kodun sorununu tam bilmiyorum ama platformun özelliklerinin buna büyük ölçüde yansıdığını düşünüyorum.

 
bus710 2025-05-30

Flutter kullanıyorsanız rinf de oldukça iyi.

 
aer0700 2025-05-29

Electron kullandım ama Tauri ile hiç çalışmadım; sanırım bir ara denemem gerekecek.

 
GN⁺ 2025-05-29
Hacker News görüşleri
  • Rust ve egui ile masaüstü uygulamaları geliştiriyorum, ama hem Rust’a hem de masaüstü geliştirmeye yeni başladığım için aynı anda çok fazla kavram öğrenmek zor geliyor. Benim alanım makine mühendisliği analiz araçları; bu yüzden arka uçta yüksek performans, ön yüzde ise veri görselleştirme gerekiyor. Tauri kullanırken rust, js, html gibi birden fazla stack’i birlikte yönetmek zor oldu mu merak ediyorum

  • Kısa süre önce bir projeyi Tauri’den Electron’a taşıdım. Farklı platformlarda kullanılan webview’ların render farkları baş ağrıttı. Çapraz platformda UI bug’ları yaşayıp yaşamadığınızı merak ediyorum. UI gereksinimleri basit, hesaplama tarafı karmaşık; bu yüzden QA maliyeti olsa bile buna değeceğini düşünüyorum. Yaşadığım şey sıra dışı bir deneyim miydi, yoksa render farkları gerçekten yaygın bir sorun mu merak ediyorum. Bir de Tauri’yi 1.0 mı 2.0 mı kullandığınızı merak ediyorum. Ben v1’den geçiş yaparken 2.0’ın kararlı sürümü çıkmıştı; migration tam bir kabustu ve dokümantasyon da gerçekten yetersizdi. Şu anda belgeler daha iyi durumda mı onu da merak ediyorum

    • Biz kreya.app’te sistem webview’unu kendimiz implemente edip kullanıyoruz (yani Tauri değil) ve platform farkları pratikte neredeyse hiç sorun yaratmıyor. Çoğunu polyfill’lerle çözüyoruz ve Linux’ta end-to-end otomasyon testleri çalıştırarak sorunların büyük kısmını yakalıyoruz. En zor kısım, kullanıcının webview sürümünün ne kadar geride kaldığını anlamak. Bu özellikle Linux ve Mac’te büyük sorun, Windows ise WebView2 sayesinde çok daha iyi durumda
    • Aslında Tauri sürümüyle henüz çapraz platform dağıtım yapmadık, bunu ileride göreceğiz. Neyse ki UI gereksinimleri basit. Tauri’de ne tür render farkları yaşadığınızı merak ediyorum. Uygulama hangi platformda en iyi çalıştı ya da sorun çıkardı? Biz de Windows desteği istiyoruz. Electron sürümünde Mac Intel çiplerde paketlenmiş binary’yi çalıştırma sorunu yaşadık; bu o kadar uğraştırıcıydı ki Tauri ile yeniden derlerken önce tek platforma, Mac’e (Apple chip) odaklanmaya karar verdik. Tauri 1.4 kullandık ve şu ana kadar sorun yaşamadık. 2.0 migration belgelerine de daha sonra bakacağım
    • Çapraz platform UI bug’ı yaşayıp yaşamadığımız sorusuna gelirsek, tabii ki hayır; çünkü şu an sadece Mac destekleniyor. Windows ve Linux’u da desteklemeye çalışsaydık sanırım bu yazı ortaya bile çıkmazdı. Çapraz platform UI gerçekten çok zor; aynı UI ve özellik setini koruyup bir de çevrimiçi sürümü düşünüyorsanız daha da zorlaşıyor. Bu yüzden herkes native’den Qt’ye, oradan da web stack’ine geçti. Benim deneyimime göre, milyonlarca kullanıcısı olan çapraz platform masaüstü uygulamaları geliştiren bir şirkette çalışıyorum ve başka türlü yapılmasını hayal bile edemiyorum
    • Yaklaşık 6 ay önce Tauri V2 kullandığımda dokümantasyon tamamen berbattı. Projenin kendisi umut verici ama başvuracak kaynak olmadığı için düzgün şekilde uygulamak gerçekten işkenceydi
    • Tauri kısa süre önce şunu duyurdu: Bu yıl CEF ve SERVO tabanlı webview gibi yeni teknolojileri tanıtacaklarını Discord’da açıkladılar
  • Ben de benzer bir yoldan geçtim. USB mikroskop için optimize edilmiş basit bir webcam görüntüleyici yaptım; mevcut çözümler yeterince iyi değildi, ben de kendim yazdım. Neredeyse tüm özellikleri renderer tarafında uyguladım. App Store’a göndermeye hazırlanırken 500 MB’lık bir webcam görüntüleyici kulağa yanlış gelmeye başladı, ben de Tauri V2’ye port edip boyutu yaklaşık 15 MB’a indirdim

    • Tauri ile Electron arasındaki farkı merak ediyorum. Benim anladığım kadarıyla ikisi de render için tarayıcı kullanıyor ama Electron kendi tarayıcısının tamamını paketle geliyor, Tauri ise sistemde zaten bulunan tarayıcıyı kullanıyor
    • Gerçekten çok etkileyici. Hangi ürün olduğunu merak ettim. Biz de bu hafta App Store’a gönderime hazırlanıyoruz
  • Bu uygulamanın amacını gerçekten seviyorum. Bu alandaki diğer uygulamalar çoğu zaman fazla hantal ve kullanışsız oluyor, bu yüzden yeniden yazım işi ilgimi çekiyor. Ama ben fotoğrafçıyım ve medyamın büyük kısmı RAW formatında; bunun desteklenip desteklenmediğinden emin değilim (ya da “tüm başlıca görsel ve video formatları” ifadesinde RAW geçmediğine göre muhtemelen desteklenmiyor olabilir). Bu tür ayrıntıları doğrulayabileceğimiz resmi belgeler, kullanıcı forumları ya da başka kanallar var mı merak ediyorum

  • Ben ne Mac kullanıcısıyım ne de ekibimiz Rust’a yeniden yazmayı düşünüyor, ama bu yazı beni gerçekten sevindirdi. “Show HN”de tam da bu uzunlukta, gerçek dünyadaki sorunları çözmek için gereken teknik trade-off’ları özetleyen yazılar görmek istiyorum. Teşekkürler

    • Deneyimimi paylaşabildiğime sevindim. Zaten çalışan bir şeyi yeniden inşa etme kararı kolay değildi ama sonuçtan memnunum
  • Tauri, Flutter, Electron, React Native ve diğer modern çapraz platform framework’leri karşılaştıran güncel benchmark’lar olsa gerçekten harika olurdu. Temel metrikler olarak paket boyutu, bellek kullanımı (RAM), açılış süresi, yük altındaki CPU kullanımı ve disk alanı düşünülebilir. Özellikle Tauri gibi, kullanılan webview sürümüne göre render ve performansı değişebilen framework’lerde, platform bazlı (WebView2, WKWebView vb.) bir uyumluluk matrisi de çok faydalı olurdu. Bu farklar görsel olarak bir tabloda sunulsa geliştiriciler çok daha iyi karar verebilir

    • İki hafta önce yayımlanmış güncel bir karşılaştırma var. web-to-desktop-framework-comparison bağlantısından bakabilirsiniz. Electron çalışma zamanı performansında oldukça rekabetçi görünüyor. Bence disk alanından çok bellek kullanımına dikkat etmek gerekiyor.
      • Windows (x64) bellek kullanımı (tek pencere, release build):
      1. Electron: yaklaşık 93MB
      2. NodeGui: yaklaşık 116MB
      3. NW.JS: yaklaşık 131MB
      4. Tauri: yaklaşık 154MB
      5. Wails: yaklaşık 163MB
      6. Neutralino: yaklaşık 282MB
      • Mac (arm64):
      1. NodeGui: yaklaşık 84MB
      2. Wails: yaklaşık 85MB
      3. Tauri: yaklaşık 86MB
      4. Neutralino: yaklaşık 109MB
      5. Electron: yaklaşık 121MB
      6. NW.JS: yaklaşık 189MB
      • Linux (x64):
      1. Tauri: yaklaşık 16MB
      2. Electron: yaklaşık 70MB
      3. Wails: yaklaşık 86MB
      4. NodeGui: yaklaşık 109MB
      5. NW.JS: yaklaşık 166MB
      6. Neutralino: yaklaşık 402MB
    • Bu tür karşılaştırmalardan daha fazla görmek isterim
  • Önceki şirketimde Windows ve Mac için masaüstü bir Electron uygulamasının bakımını yapıyordum. Uygulama çok hantaldı ve Squirrel ile güncelleme yapmak tam bir eziyetti.
    Sonunda GUI’yi web SPA (Inferno tabanlı) olarak bırakıp, webview yükleme gibi işleri her platform için küçük native uygulamalarla (C# ve Swift) değiştirdik. Sonuç olarak indirme boyutu ve bellek kullanımı yaklaşık %90 azaldı, ayrıca dağıtım ve güncellemeyi her platformun kendi uygulama mağazası üzerinden yapmaya başladık. Bence verdiğimiz en iyi karardı

    • Native uygulama mağazaları üzerinden dağıtım/güncellemeyi öven birini sanırım ilk kez görüyorum.
      Onay süreleri ve belirsizlik kaygı verici; Squirrel’den native’e geçince hangi yönleriyle daha iyi oldu merak ediyorum
    • Bu geçiş ne kadar sürdü merak ediyorum
  • Son uygulama Mac içinse, neden Rust/Tauri seçildi de Swift/SwiftUI tercih edilmedi gerçekten merak ediyorum

    • Sorduğunuz için teşekkürler. Desktop Docs’un hedefi çapraz platform olmak. Özellikle çok sayıda Windows desteği talebi aldığımız için, ileride bir Windows sürümüne hazırlanmak adına Rust seçildi
    • Ben de aynı şeyi soracaktım. Swift’in oldukça iyi bir dil olduğunu ve Rust’a benzer birçok avantaj sunduğunu düşünüyorum. CLIP entegrasyonu kısmını da merak ettim; port süreciyle ilgili anlatılanlar çok hoştu
    • Ben de merak ediyorum. Yakında bir masaüstü uygulaması yapmayı planlıyorum; Swift’i uzun süredir kullanıyorum ama Rust bilgim çok sınırlı. Tauri çok cazip görünüyor. Electron uygulamaları, ne kadar hızlı bir PC olursa olsun, çok yavaş açılıyor. Paylaşılan içgörüler için teşekkürler
  • egui yerine Tauri’yi seçmenize neyin yol açtığını merak ediyorum. Bunun nedeni Electron deneyimi miydi? Ben de bir Python Qt uygulamasını Rust’a port etmeyi düşünüyorum ama Rust’ın GUI kütüphaneleri henüz Qt kadar olgun olmadığı için sonunda tıkanıp kalmaktan endişe ediyorum

    • Sizi en başta port etmeyi düşünmeye iten temel sebep neydi merak ediyorum
  • Ana landing page’deki "Try" butonuna bakınca kullanıcılar bir deneme sürümü olduğunu sanabilir ama pratikte doğrudan satın almaya gidiyor. Kısa da olsa, örneğin 1 haftalık bir deneme sürümü iyi olurdu.
    Süresiz kullanım için yedek lisans politikasını beğendim. 99$ giriş bariyeri olarak oldukça yüksek ama hedef kitle yaratıcılar/stüdyolarsa mantıklı; genel tüketici içinse 20$-25$ daha uygun olabilir.
    Yazıda performans özellikle vurgulanıyor ama landing page’de bundan hiç bahsedilmiyor. 38 dakikalık videoda olduğu gibi benchmark’lar, paralel işleme, VRAM gereksinimleri gibi bilgiler de önemli. Yüzlerce ya da binlerce saatlik medyada gerçekte nasıl davrandığını merak ediyorum.
    Electron’da 10-14 dakika süren bir işin Tauri’de 3 dakikaya düşmesi şaşırtıcı. Electron sadece CLIP ve ffmpeg’i orkestre ettiyse, bu kadar overhead tam olarak nereden geliyor merak ediyorum.
    Ben de geçmişte Electron ile video transkripsiyonuna dayalı bir medya arama aracı yaptım ve performans sorunu pek yaşamamıştım.
    Genelde Electron veya Tauri’nin tercih edilme nedeni çapraz platform olmalarıdır; o halde neden en başta sadece Mac’e odaklanıldı merak ediyorum (özellikle büyük hacimli medya işleme söz konusuysa nvidia kullanımı da mümkünken).
    Ben de yakın zamanda yaklaşık 10 yıl aradan sonra yeniden Swift kullandım ve Tauri ile arasında gidip gelirken Swift’i seçtim (yeni proje için). 2014 civarına kıyasla inanılmaz gelişmişti ve kullanımı neredeyse keyifliydi.
    Aktif kullanıcılarla ilgili bölüm doğruysa, görünüşe göre zaten belli bir başarı yakalamışsınız; daha önce stüdyo/yaratıcı sektöründe bir ağınız ya da kitleniz var mıydı merak ediyorum. Pazarlama kısmını da duymak isterim

    • Geri bildirim için teşekkürler. Altyapı tarafında henüz deneme sürümünü uygulayamadık ama ileride değerlendirmeyi planlıyoruz.
      Benzer bir aracı kendiniz yaptığınızı söylemişsiniz; neden yayımlamadığınızı merak ediyorum.
      Windows ve Linux sürümlerini de talep olursa önümüzdeki birkaç ay içinde çıkarmayı planlıyoruz.
      Kullanıcıları HN, Reddit lansmanı ve biraz LinkedIn tanıtımıyla kazandık. Çoğu da kulaktan kulağa yayıldı.
      Electron ve video işleme performansı konusunda daha derine inersek anlatacak çok şey var. Ben de Electron uzmanı değilim; worker’ları düzgün kullanamadığımız için darboğaz oluşmuş olabilir.
      Rust’a geçerken scene detection da ekledik; böylece indekslenecek frame sayısını azaltıp işlem yükünü ciddi biçimde düşürdük. ffmpeg için GPU hızlandırma seçenekleri de ekledik, bu da performansı epey artırdı. Görüntü embedding üretimini de batch processing ile optimize ettik. Ama fazla zorlanırsa model instance’ı çökebiliyor olabilir
 
secret3056 2025-05-29

HN'de bağlantısı verilen performans karşılaştırma tablosunda, Electron çoğu durumda Tauri'den daha iyi görünüyor....

 
majorika 2025-05-29

Yorumdaki performans karşılaştırması içeriğinin, ilgili depodaki değerler arasından Electron lehine olanların seçilip alınmış olduğu izlenimi azımsanmayacak kadar güçlü. Değerler biraz farklılık gösterse de en benzer metrik, "çalıştırmadan önceki boş bellek ile çalıştırdıktan sonraki boş bellek arasındaki fark"ın karşılaştırıldığı kısım. Ancak hemen üstteki maddede, çalışma sırasında ana süreç ile alt süreçlerin toplam bellek kullanımının Electron için 258M olarak kaydedildiği bir durumda, çalıştırma öncesi ve sonrası bellek kullanım değişiminin 91MB olduğu kısmını kabul etmek zor görünüyor. HN'deki bir alt yorumda da, Tauri ile yapılmış uygulamanın açılış süresinin 7 saniyeden fazla çıktığı, bu yüzden depodaki ölçüm değerlerine güvenmenin zor olduğu yönünde bir değerlendirme var.

 
wfedev 15 일 전

Hmm, sorunların çoğu Electron ya da Tauri farkından kaynaklanmaktan ziyade daha çok WebView motoru + işletim sistemi/sürücü sorunları gibi görünüyor.