- Uzak pair programming için ultra düşük gecikmeli bir remote control uygulaması geliştirirken uygulama çatısı olarak Tauri benimsendi
- Seçilme nedenleri arasında performans, bellek verimliliği ve sidecar desteği yer alıyor
- Rust tabanlı backend + sistem WebView kullanımı sayesinde Electron’a kıyasla uygulama boyutu ve bellek kullanımı çok daha düşük
- Tauri v2 ile özellik farkı da hızla kapanıyor; otomatik güncelleme, sidecar gibi temel özellikler yerleşik geliyor
- Electron hâlâ güçlü, ancak Hopp’un özel gereksinimleri için Tauri daha uygun
Hopp neden Tauri’yi seçti
Arka plan: çapraz platform uygulama çatısı seçimi
- Hopp, Windows, macOS ve Linux’ta aynı şekilde çalışan yüksek performanslı bir masaüstü uygulamasına ihtiyaç duyuyordu
- Electron ve Tauri öne çıkan seçeneklerdi ve her birinin belirgin avantajları ve dezavantajları vardı
- Hopp ekibi seçim yaparken uzun vadeli bakım kolaylığına ve performansa önem verdi
Tauri vs. Electron: yapısal farklar
-
Electron yapısı
- Node.js runtime’ının dahil edilmesi gerekir → uygulama boyutu büyür
- Her pencere ayrı bir renderer süreci (Chromium motoru) kullanır → bellek tüketimi yüksektir
- Sistemle derin entegrasyon için ayrı süreçler gerekir
-
Tauri yapısının özeti
- Backend, Rust tabanlı yerel bir binarydir → ayrı bir runtime gerekmez
- Sistem WebView kullanır (Windows: WebView2, macOS: WKWebView, Linux: WebKitGTK)
- Pencere sayısı arttıkça bellek verimliliği iyidir, ancak tarayıcı motoru uyumsuzluğu sorunlarının yönetilmesi gerekir
Temel özellik karşılaştırması
- Başlangıç süresi açısından hem Tauri hem de Electron hızlıdır; hissedilir büyük bir fark yoktur
- Bellek kullanımı tarafında Tauri çok daha düşüktür
- Tauri yaklaşık 172MB bellek kullanırken
- Electron yaklaşık 409MB kullanıyor ve 2 katından fazla bellek tüketiyor
- Render motoru açısından
- Tauri, işletim sistemine gömülü WebView kullandığı için uygulama boyutu küçük ve hafiftir
- Electron, Chromium motorunu doğrudan uygulamanın içine dahil ettiği için daha fazla kaynak kullanır
- Backend dili olarak
- Tauri, Rust kullandığı için yüksek performanslı yerel kod yazmaya uygundur
- Electron, JavaScript (Node.js) tabanlıdır; web geliştiricileri için tanıdıktır ancak performansı görece daha düşüktür
- İlk build süresi tarafında
- Tauri, Rust derleme sürecini içerdiği için ilk build daha yavaştır
- Electron, JS tabanlı olduğu için ilk build daha hızlıdır
- Uygulama boyutu karşılaştırmasında
- Tauri yaklaşık 8.6MiB ile son derece hafiftir
- Electron yaklaşık 244MiB’dir ve yaklaşık 28 kat daha büyüktür
Hopp’un Tauri’yi seçmesinin belirleyici nedenleri
-
1. Yüksek performanslı Rust backend
- WebRTC tabanlı ultra düşük gecikmeli video streaming uygulaması gereksinimi vardı
- Electron’da bunun için ayrı bir süreç çalıştırmak gerekirken, Tauri’de doğrudan Rust backend içinde uygulanabiliyor
-
2. Sidecar süreci desteği
- Streaming ve input işleme, ayrı binary’lere bölünerek yönetiliyor
- Tauri, sidecar’ı resmî olarak destekliyor → yaşam döngüsü ve iletişim yönetimi kolaylaşıyor
- Gelecekte cursor rendering için Tauri egui’ye genişleme de değerlendiriliyor
-
3. Hızla gelişen özellik desteği
- Tauri v2, otomatik güncelleme gibi temel özellikleri yerleşik olarak sunuyor
- Electron’a kıyasla daha yeni olsa da, güvenlik ve performans odaklı vizyonu Hopp ile örtüşüyor
Sonuç: hangi framework daha iyi?
- Hem Electron hem de Tauri mükemmel masaüstü uygulama çatılarıdır
- Seçim, projenin niteliğine göre değişebilir
- Electron: hızlı geliştirme, JS dostu yapı, geniş ekosistem
- Tauri: daha küçük, daha hafif, daha hızlı ve Rust tabanlı performansa optimize
- Hopp, performans odaklı teknoloji yığınına ve ayrı süreç yapısına ihtiyaç duyduğu için Tauri’yi benimsedi
6 yorum
Ben
webuikullanıyorum. Boyutu da küçük ve çalışma zamanı bağımlılığı çok daha az.Wails'in de birlikte karşılaştırılması iyi olurdu.
Bana ise tersine, çoğu durumda Electron yeterliymiş gibi geliyor.
Belki de ilk dönemlerde Tauri’de backend-frontend iletişimi deneyimimin pek iyi kalmayan anısından dolayıdır...
Tarayıcı motoru farkının büyük bir mesele olduğunu düşünüyorum ama mobil dahil destek düşünülünce o kadar da büyük gelmiyor.
Uygulama boyutu sorunu büyükse, hiç düşünmeden Tauri tarafına gitmek doğru görünüyor.
Boyut, bellek ve sidecar açısından uygun bir seçim olup olmadığını bir kez deneyip görmem gerekecek! Tanıtım için teşekkürler.