58 puan yazan GN⁺ 2026-02-24 | 5 yorum | WhatsApp'ta paylaş
  • Ana süreçte Bun, yerel bağlamalarda Zig kullanan TypeScript tabanlı masaüstü uygulama çatısı
  • macOS, Windows, Ubuntu desteği sunar; yükleyici, otomatik güncelleme ve diferansiyel yama artifact'lerini otomatik üretir
  • Pencere denetimi, menüler, kısayollar, pano, iletişim kutuları, oturum depolaması gibi eksiksiz bir masaüstü özellik seti sunar ve OOPIF tabanlı kararlı bir webview uygular
  • İç yapı, Bun'ın FFI ve paylaşımlı bellek modelini kullanarak çok süreçli ortamlarda da verimliliği korur
  • Electron ve Tauri'nin sınırlarını deneyimleyen bir geliştirici tarafından, Zig, C, C++, Objective-C iki yıl boyunca öğrenilerek doğrudan geliştirildi
  • Amaç, 5 dakika içinde kod yazmaya başlayıp 10 dakika içinde dağıtıma çıkılabilen entegre bir iş akışı sunmak

Electrobun proje özeti ve hedefleri

  • Ana süreci Bun ile çalıştıran, webview TypeScript'ini paketleyen ve yerel bağlamaları Zig ile yazan bir yapı
  • Hem ana süreç hem de webview TypeScript ile yazılır; süreçler arası yalıtım (isolation) korunurken hızlı ve tipli RPC iletişimi sağlar
  • Kendi kendine çıkarılan uygulama paketi boyutu yaklaşık 12MB'tır (sistem webview kullanıldığında, bunun büyük kısmı Bun çalışma zamanıdır)
  • bsdiff tabanlı diferansiyel güncellemelerle yama boyutu en az 14KB seviyesine kadar indirilebilir
  • 5 dakika içinde kod yazmaya başlayıp 10 dakika içinde dağıtımı tamamlatan tek bir entegre iş akışı sunmak hedefleniyor
  • npx electrobun init komutuyla şablon tabanlı bir proje başlatılabilir

Geliştirilme arka planı

  • Visual Basic 6 döneminden beri masaüstü uygulamaları geliştiriyor; Adobe AIR döneminde çeşitli startup ürünlerini binlerce kişiye dağıtmış olması bu işin çıkış noktası
  • 20 yıldan uzun süredir erken aşama startup'larda mühendis olarak unicorn ölçeğinde ürünler kurup büyütmüş olsa da masaüstü geliştirme ortamı tersine geriledi
  • Hibrit bir web tarayıcısı + kod editörü + PTY terminali olan co(lab) üzerinde çalışırken çok fazla zorlukla karşılaşıp çatıyı bizzat yapmaya karar verdi
  • İlk sürüm Electron ile geliştirildi ancak kod imzalama, notarization, dağıtım ve güncelleme süreçleri uygulama geliştirmekten çok çatının kendisiyle mücadele etmeye benziyordu
  • Web'deki gibi sürekli dağıtım (continuous shipping) istendi ancak mevcut araç zinciri bunu gereğinden fazla zorlaştırıyordu
  • Tauri de denendi fakat Rust'ın her geliştirici için uygun olmadığı düşünüldü; o sırada Bun henüz 1.0'dan birkaç ay uzaktaydı ve doğrudan geliştirmeye başlandı

macOS'tan çapraz platforma

  • Başlangıçta yalnızca macOS uygulamaları derlenebiliyordu; bugün ise macOS, Windows, Ubuntu üzerinde derleme ve dağıtım birinci sınıf destekleniyor
  • Yükleyiciler, otomatik güncelleme artifact'leri ve diferansiyel yamalar (differential patches) otomatik oluşturuluyor
  • Yalnızca statik bir host (R2, S3, GitHub Releases) bağlamak dağıtım için yeterli
  • Diferansiyel güncellemeler, C'den Zig'e taşınıp SIMD ve zstd ile optimize edilen zig-bsdiff tarafından sağlanıyor
  • Bun'ın FFI'si olgunlaştıkça daha önce yazılan Zig FFI katmanının büyük bölümü Bun ile değiştirildi
  • Mimari olumlu yönde evrildi; Bun worker oluştururken paylaşımlı bellek kullandığı için çok süreçli yapıda da verimlilik korunuyor

Yayınlanan özellikler

  • Şu anda tam teşekküllü bir çatı olarak çapraz platform pencere denetimleri, menüler, kısayollar (accelerators), global kısayollar, pano, iletişim kutuları, webview partition'ları, session storage, sayfa içinde arama (find-in-page), paketleme ve güncelleme araçları sunuyor
  • OOPIF (Out-of-Process Iframe) uygulaması gerçekten çalışır seviyeye ulaştı
    • Electron'un <webview> etiketi Chromium'da deprecated oldu ancak hâlâ yerine geçen bir alternatif yok
    • <electrobun-webview>, DOM konumlandırması, süreç yalıtımı ve katmanlamanın düzgün çalıştığı gerçek bir "super iframe"
    • İmleç titremesi (cursor flicker) sorunu olmadan ve tarayıcı motoru patch'lenmeden çapraz platform çalışıyor

Platform destek durumu

  • macOS 14+: Resmî destek
  • Windows 11+: Resmî destek
  • Ubuntu 22.04+: Resmî destek
  • Diğer Linux dağıtımları (gtk3, webkit2gtk-4.1): Topluluk desteği

Gelecek planları

  • co(lab), Electrobun üzerinde baştan sona yeniden yazıldı; v1 istikrarı temel alınarak artık co(lab) geliştirmesine tam odaklanılacak
  • Temel hedef, çatının platform churn karşısında sarsılmadan iddialı uzun vadeli ürünler inşa etmeye yetecek kadar istikrarlı hale gelmesi
  • Discord topluluğu büyüyor; beta testleri, issue bildirimleri ve geri bildirimlerle katkı veren kullanıcılar çatıya yön verdi
  • Electrobun, Blackboard tarafından yayımlanan ilk büyük ürün

5 yorum

 
myname1260 2026-03-03

"co(lab) baştan sona yeniden yazıldı" ifadesini görünce, bunun Google ile birlikte ipynb çalıştırma için bulut kararlılığını iyileştiren bir şey olduğunu sanmıştım ama bununla hiç ilgisi olmayan, Blackboard ekibinin bir geliştirme projesiymiş

Yine de OOPIF'in npx ile kurulup erişilebilir olması önemli bir deneyim gibi görünüyor

 
geekbini 2026-02-24

"Kod imzalama, noter tasdiki, dağıtım ve güncelleme süreci uygulama geliştirmekten çok framework ile kavga ediyormuş gibi hissettiriyor"

Metnin arka planında buna benzer bir ifade var ve
gerçekte uygulama geliştirmekten ziyade dağıtıma daha fazla emek harcanan durumlar olabiliyor.
Sırf bu sorunu çözmüş olması bile onu yüksek değerlendirmem için yeterli.

 
bus710 2026-02-24

Flutter'a zig eklemek de oldukça kolay ve basit görünüyordu.
Dart/c ffi belgelerinden çok da farklı değil...

 
mammal 2026-02-24

> Neden büyük Linux dağıtımlarının varsayılan olarak WebView sunmadığını merak ediyorum. Bu, uygulama ekosisteminin genişlemesinin önündeki büyük bir engel.

GUI ortamına sahip bir işletim sisteminde artık WebView'un temel bir bileşen haline gelmesi gerektiğini düşünüyorum.

 
GN⁺ 2026-02-24
Hacker News görüşleri
  • Merhaba, ben Electrobun'un geliştiricisiyim
    Bu kez v1 kararlı sürümü yayımladım. Mimarinin şeklini sabitledim; eğer bir bug bulursanız veya Electron/Tauri'de kullandığınız bir API'ye ihtiyaç varsa GitHub issue açarsanız bunu öncelikli olarak ele alacağım
    Geçen ay boyunca 50 bin satır kodu değiştirerek kararlılık çalışmalarını tamamladım
    Electrobun ile yapılmış açık kaynak proje Colab'ın (web tarayıcısı + kod editörü + PTY terminali) bir demo videosu da var
    Electrobun varsayılan olarak sistem WebView'unu kullanıyor, ancak bundleCEF seçeneğiyle CEF de dahil edilebiliyor. Yapısal olarak WebView'dan bağımsız olduğu için Servo veya Ladybird hazır olduğunda doğrudan onunla değiştirilebilir
    Ayrıca her sürümde zstd tabanlı otomatik sıkıştırılmış paketler oluşturarak ilk indirme boyutunu azaltabiliyor ve güncellemeleri 14KB seviyesinde küçük tutabiliyor

    • Tür tanımlarının dokümantasyonla eşleşip eşleşmediğini merak ediyorum. Örneğin BrowserWindow'a partition anahtarı eklenince TypeScript hatası oluşuyor
    • Electrobun'u yaptığınız için teşekkürler
  • Electrobun çok umut verici görünüyor. Bir sonraki projemi bununla yapmayı planlıyorum
    Tam TypeScript yığını içinde üretkenliğin en yüksek olduğu seçenek bu gibi duruyor. Rust veya uzun derleme süreçleri olmadan Electron'dan daha hafif ve daha hızlı bir alternatif elde etmek sevindirici

    • İlk Tauri uygulamamı yeni bitirdim ve Windows derlemesinin bu kadar uzun sürmesine şaşırdım. Electrobun'u kesinlikle deneyeceğim
  • Discord'da birçok oyun geliştiricisi Electrobun ile masaüstü oyunları deniyor
    Steam indie oyun pazarında Electron'un bir kısmının yerini alma potansiyeli olabilir
    Özellikle bun --watch game.ts ile anında yeniden yüklenen TypeScript oyun geliştirme deneyimi çok hızlı ve akıcı

    • Çok web geliştirme yapan biri olarak, araçlardan bağımsız şekilde bile Bun performans açısından büyük bir sıçrama
    • Electron ile yapılmış oyun çok fazla değil. Aklımda kalanlardan biri CrossCode. Çoğu Unity veya Godot kullanıyor
    • Bunun gibi denemelerin yapıldığı Discord sunucusunun hangisi olduğunu merak ediyorum. Katılmak isterim
    • Node artık watch modu ve TypeScript çalıştırmayı da destekliyor
  • Tauri'nin temel sorunu, sistem WebView kalitesinin işletim sistemine göre değişmesi
    Linux'ta resmi bir WebView yok ve Windows 7 ya da erken dönem 10 sürümlerinde Edge WebView kullanılmıyor. Bu farklar yüzünden açılışın 20 saniyeden uzun sürdüğü bile oluyor
    100MB tasarruf etmek için bu tür ödünleşimleri kabul etmeye değer mi emin değilim
    Kullanıcıların çoğu hızlı internet kullandığı için indirme hızı büyük bir sorun değil
    Electrobun'un yerleşik Chromium renderer desteği olup olmadığını merak etmiştim, ancak dokümanlarda net değildi

    • Electrobun varsayılan olarak sistem WebView'unu kullanıyor ama gerekirse CEF(Chromium) paketlemesi yapılabiliyor. Resmî dokümanlarda açıkça belirtilmiş
    • Ürün sitesinde de “System’s native webview as renderer, CEF optional” yazıyor. Yani seçim yapılabiliyor
    • Windows'ta Tauri uygulaması yaparken embedded bootstrapper kullanmak zorunda kalmıştım. Electrobun'un bu sorunu iyi çözmüş görünmesi sevindirici
    • Büyük Linux dağıtımlarının neden varsayılan bir WebView sağlamadığını merak ediyorum. Uygulama ekosisteminin genişlemesi önünde büyük bir engel
    • Tauri için de CEF tabanlı bir sürüm geliştiriliyor. İlgili branch incelenebilir. OS WebView kalitesi düşük olduğu için bu yaklaşım çok daha iyi bir iyileştirme olabilir
  • Keşke başlıkta bunun bir proje retrospektif blog yazısı olduğu belirtilseydi
    Asıl projeyi resmî doküman bağlantısından görmek daha uygun

  • Projenin ana sayfası burada
    Arayüz temiz görünüyor ve ben Zig'e aşina olduğum için Rust'a kıyasla daha erişilebilir olabilir

  • Bu hafta şirkette yeni bir Electron uygulaması dağıtacağız; Electrobun keşke 1 yıl daha erken çıksaymış
    Electron Builder güncelleme ve imzalama sürecini bir ölçüde basitleştiriyor ama yine de zahmetli
    Bir sonraki kişisel projemde Electrobun'u denemeyi düşünüyorum

  • Yazıda notarizing ve stapling sorunlarından bahsedilmiş; Xcode kullanmıyorsanız Apple bu süreci gerçekten çok zorlaştırıyor
    Windows'ta da CI otomasyonu kolay değil. Electrobun daha iyi bir çözüm sunuyorsa çok ilgimi çeker

    • Çoğu durumda varsayılan ayarlarla destekleniyor. Birkaç environment variable ayarlayıp notarize: true ile derleme yapmak yeterli
      Electrobun ile birçok kez imzalama ve noter onayı yaptım, sorun yaşamadım. Daha karmaşık durumlar için bir escape hatch de sunuluyor
      Yardım gerekirse Discord'dan DM atabilirsiniz. (Electrobun ile bağlantım yok ama Apple'ın noter onay sistemiyle uğraşmanın ne kadar acı verici olduğunu iyi biliyorum)
  • Eğer Electron uygulaması 500MB'den büyükse, Electrobun'un 14MB'si gerçekten çok küçük bir boyut gibi geliyor

    • Tipik bir macOS Electron uygulaması (DMG) yaklaşık 80MB iken Electrobun yaklaşık 16MB seviyesinde
  • Ubuntu dışındaki dağıtımların şu anda destek kapsamı dışında olması üzücü
    İlgili tartışma issue comment içinde görülebilir