Karşılaştırmalara geri dön

TypeScript Geliştiricileri için Electron Alternatifleri

Electron, masaüstü uygulamalarını web geliştiricileri için erişilebilir kıldı; boyut ve bellek maliyetleri ise “Electron alternatifi”ni kalıcı bir arama sorgusu haline getirdi. Diliniz TypeScript ise 2026'da dört gerçekçi yol var: Electron'da kalmak, Tauri'ye geçmek, Bun ile runtime gömülü ikili dosyalar inşa etmek ya da Perry ile yerele derlemek. Dördü de çok farklı takaslar yapar.

Dört yaklaşım

Electron — referans noktası

Her uygulamayla birlikte Chromium ve Node.js'i paketler. Artısı, on yıllık üretim olgunluğu ve ekibinizin zaten bildiği bir UI yığınıdır (HTML/CSS/JS) — VS Code, Slack ve Discord bunun üzerinde çalışır. Eksisi ise temel maliyettir: yaklaşık 80–150 MB'lik hello-world kurulum dosyaları, birden fazla Chromium süreci ve boştayken yüzlerce MB RAM. Sadece masaüstü. Tam Perry vs Electron karşılaştırması.

Tauri — sistem webview'de web UI, Rust backend

Tauri, web frontend'ini korur ama paketlenmiş Chromium'u kaldırır: UI, işletim sisteminin webview'inde (WKWebView, WebView2, WebKitGTK) render edilir, bu yüzden kurulum dosyaları tek haneli MB aralığında kalır. Kararlıdır, iyi belgelenmiştir ve Tauri 2, iOS/Android desteğini ekledi. Takaslar: backend TypeScript değil, Rust'tur — UI'nın ötesindeki uygulama mantığı Rust yazmak ve bir IPC köprüsünü geçmek anlamına gelir — ve her işletim sistemi farklı bir webview gönderdiği için render platforma göre hafifçe değişir. Tam Perry vs Tauri karşılaştırması.

Bun — tek dosyalık ikili dosyalar, GUI katmanı yok

“bun electron” arayan insanlar genellikle Electron'un kolaylığını ağırlığı olmadan ister. bun build --compile, Bun runtime'ını paketlenmiş TypeScript'inizle gömerek tek bir çalıştırılabilir dosya üretir — CLI'ler ve sunucular için mükemmeldir, tam olarak runtime'ın kendisi olduğu için tam npm uyumluluğuna sahiptir. Ancak ikili dosya kabaca 60 MB (macOS arm64) ile 100+ MB (Linux/Windows) arasındadır, kod hâlâ JIT ile çalıştırılır ve Bun'ın bir UI framework'ü yoktur — bir masaüstü uygulaması yine de üzerine Electron, Tauri veya bir webview kütüphanesi gerektirir. Tam Perry vs Bun karşılaştırması.

Perry — yerel widget'lara derlenen TypeScript

Perry, TypeScript'i ahead-of-time olarak makine koduna derler ve UI'ı gerçek platform widget'ları aracılığıyla render eder — AppKit, UIKit, GTK4, Win32, JNI ile Android — hiçbir webview ve IPC köprüsü olmadan. UI ve mantık için tek bir dil, ~330 KB hello world, 2–5 MB tipik ikili dosyalar, ~1 ms başlatma süresi ve mobil, watch ve TV dahil on hedef. Dürüst uyarı: Perry 1.0 öncesidir, UI API'si kendine özgüdür (bildirimsel, SwiftUI tarzı — HTML/CSS değil) ve ekosistem Electron'unkinin yanında gençtir.

Yan yana

PerryElectronTauriBun (--compile)
DilHer yerde TypeScriptJS/TS + HTML/CSSJS/TS frontend, Rust backendTypeScript
UI yaklaşımıYerel platform widget'larıPaketlenmiş ChromiumSistem webview'iYok (CLI/sunucu)
Hello-world boyutu~330 KB~80–150 MB~3–10 MB~60–116 MB (platforma göre)
YürütmeAOT makine koduJIT (V8)JIT (webview JS motoru) + yerel RustJIT (JavaScriptCore)
Boştayken bellekOnlarca MB (tek bir yerel süreç)Yüzlerce MB (çok süreçli Chromium)Electron'dan daha düşük (OS webview'i)Runtime için tipik
Mobil / watch / TViOS, iPadOS, Android, watchOS, tvOSHayıriOS, Android (Tauri 2)Hayır
Olgunluk1.0 öncesiÜretimde 10+ yılKararlı (1.x/2.x)Kararlı

Peki React Native veya Flutter?

Her Electron tartışmasında gündeme gelirler, ama farklı bir soruyu yanıtlarlar. React Native mobil önceliklidir: JavaScript'iniz Hermes motorunda çalışır ve bir köprü üzerinden yerel görünümleri sürer; masaüstü desteği ise yalnızca ayrı topluluk/Microsoft fork'ları aracılığıyla var olur — birebir bir Electron ikamesi değildir (Perry vs React Native). Flutter masaüstünü ve mobili kapsar ama TypeScript'i bırakıp Dart'a geçmek anlamına gelir ve platformun widget'larını kullanmak yerine kendi widget'larını çizer. TypeScript'te kalmak kısıtınız ise, gerçekçi masaüstü kısa listesi yukarıdaki dört seçenek olarak kalır.

Hangisini seçmelisiniz?

Web yığınında kalın

UI'nız zaten React/Vue/Svelte ile inşa edilmişse ve bugün sahada kanıtlanmış bir masaüstü dağıtımına ihtiyacınız varsa, Electron en düşük riskli seçim olmaya devam eder — bedelini boyut ve bellekle ödersiniz. Bu maliyet sizi rahatsız ediyorsa ve backend'i Rust'ta yazmaktan çekinmiyorsanız, Tauri size web yığını deneyiminin çoğunu çok daha küçük bir ayak iziyle sunar.

Webview'i geride bırakın

Gerçekten istediğiniz şey TypeScript girdi, yerel uygulama çıktıysa — tek dil, gerçek platform widget'ları, küçük ikili dosyalar ve aynı kod tabanından mobil/watch/TV — Perry'nin doldurmak için var olduğu boşluk tam olarak budur; girişin bedeli ise 1.0 öncesi olgunluktur. Ve tek ihtiyacınız sıfır uyumluluk riski olan tek dosyalık bir CLI veya sunucuysa, Bun'ın --compile komutu pragmatik seçimdir.

Kendiniz görün

Perry'yi kurun ve TypeScript'ten yerel bir uygulama gönderin.