58 पॉइंट द्वारा GN⁺ 2026-02-24 | 5 टिप्पणियां | WhatsApp पर शेयर करें
  • मेन प्रोसेस में Bun और नेटिव बाइंडिंग्स के लिए Zig का उपयोग करने वाला TypeScript-आधारित डेस्कटॉप ऐप फ्रेमवर्क
  • macOS, Windows, Ubuntu सभी को सपोर्ट करता है, और installer·auto update·differential patch artifacts अपने-आप जनरेट करता है
  • विंडो कंट्रोल, मेन्यू, शॉर्टकट, क्लिपबोर्ड, डायलॉग, सेशन स्टोरेज आदि सहित पूरा डेस्कटॉप फीचर सेट देता है, और OOPIF-आधारित स्थिर webview लागू करता है
  • आंतरिक संरचना Bun के FFI और shared memory model का उपयोग करती है ताकि multi-process environment में भी दक्षता बनी रहे
  • Electron और Tauri की सीमाएँ झेल चुके एक डेवलपर ने 2 साल तक Zig, C, C++, Objective-C सीखकर इसे खुद बनाया
  • लक्ष्य है कि 5 मिनट में कोड लिखना शुरू करें और 10 मिनट में deploy तक कर सकें, एक integrated workflow के साथ

Electrobun प्रोजेक्ट का अवलोकन और लक्ष्य

  • ऐसी संरचना जिसमें मेन प्रोसेस Bun पर चलता है, webview TypeScript को bundle किया जाता है, और नेटिव बाइंडिंग्स Zig में लिखी जाती हैं
  • मेन प्रोसेस और webview दोनों TypeScript में लिखे जाते हैं, लेकिन प्रोसेसों के बीच isolation बनाए रखते हुए तेज और typed RPC communication प्रदान किया जाता है
  • self-extracting app bundle का आकार लगभग 12MB (system webview उपयोग करने पर, ज्यादातर Bun runtime का आकार)
  • bsdiff-आधारित differential updates से patch size को न्यूनतम 14KB तक घटाया जा सकता है
  • लक्ष्य है कि 5 मिनट में कोडिंग शुरू हो जाए और 10 मिनट में deploy पूरा हो सके, यानी एकीकृत workflow उपलब्ध कराना
  • npx electrobun init कमांड से template-आधारित प्रोजेक्ट शुरू किया जा सकता है

इसे बनाने की पृष्ठभूमि

  • Visual Basic 6 के दौर से डेस्कटॉप ऐप बनाते आए हैं, और Adobe AIR के समय कई startup products को हज़ारों लोगों तक वितरित करने का अनुभव इसकी शुरुआत बना
  • 20 साल से अधिक समय तक startup के शुरुआती engineer के रूप में unicorn-स्तर के products बनाए और scale किए, लेकिन डेस्कटॉप development environment उल्टा पीछे चला गया
  • hybrid web browser+code editor+PTY terminal co(lab) बनाते समय इतनी परेशानियों का सामना हुआ कि अपना framework खुद बनाने का फैसला किया
  • पहला version Electron में बनाया, लेकिन code signing·notarization·distribution·updates की प्रक्रिया ऐप बनाने से ज़्यादा framework से लड़ने जैसी लगी
  • वेब की तरह continuous shipping चाहिए था, लेकिन मौजूदा toolchain ने इसे ज़रूरत से ज़्यादा कठिन बना दिया
  • Tauri भी आज़माया, लेकिन लगा कि Rust हर डेवलपर के लिए उपयुक्त नहीं है, और उस समय Bun 1.0 रिलीज़ से कुछ महीने पहले की स्थिति में था, इसलिए सीधे खुद विकास शुरू किया

macOS से क्रॉस-प्लेटफ़ॉर्म तक

  • शुरुआत में केवल macOS ऐप build किए जा सकते थे, लेकिन अब macOS, Windows, Ubuntu सभी पर build·deploy को first-class support मिलता है
  • installer, auto update artifacts, और differential patches सब अपने-आप जनरेट होते हैं
  • सिर्फ static host (R2, S3, GitHub Releases) जोड़ें और deployment पूरा
  • differential updates का काम C से Zig में port किए गए और SIMD और zstd से optimized zig-bsdiff द्वारा किया जाता है
  • Bun का FFI स्थिर होने के बाद पहले लिखी गई Zig FFI layer का अधिकांश हिस्सा Bun से बदल दिया गया
  • architecture सकारात्मक दिशा में बदला, क्योंकि Bun worker बनाते समय shared memory का उपयोग करता है, जिससे multi-process में भी दक्षता बनी रहती है

जारी किए गए फीचर्स

  • अब एक पूर्ण framework के रूप में cross-platform window controls, menu, shortcut accelerators, global shortcuts, clipboard, dialogs, webview partitions, session storage, find-in-page, bundling·update tooling आदि उपलब्ध हैं
  • OOPIF(Out-of-Process Iframe) implementation अब वास्तव में काम करने के स्तर तक पहुँच चुकी है
    • Electron का <webview> टैग Chromium में deprecated हो चुका है, लेकिन अभी तक उसका कोई विकल्प तैयार नहीं है
    • <electrobun-webview> DOM positioning, process isolation, और layering के साथ सही तरह काम करने वाला असली "super iframe" है
    • cursor flicker समस्या के बिना, और browser engine patch किए बिना, यह cross-platform काम करता है

प्लेटफ़ॉर्म सपोर्ट की स्थिति

  • macOS 14+: आधिकारिक समर्थन
  • Windows 11+: आधिकारिक समर्थन
  • Ubuntu 22.04+: आधिकारिक समर्थन
  • अन्य Linux distributions (gtk3, webkit2gtk-4.1): community support

आगे की योजना

  • co(lab) को Electrobun पर पूरी तरह से फिर से लिखा जा चुका है, और v1 stabilization के आधार पर अब co(lab) development पर गंभीरता से फोकस किया जाएगा
  • मुख्य लक्ष्य यह है कि framework इतना स्थिर हो जाए कि platform churn से डगमगाए बिना महत्वाकांक्षी long-term products बनाए जा सकें
  • Discord community बढ़ रही है, और beta testing·issue submission·feedback के ज़रिए योगदान देने वाले users ने framework को आकार देने में मदद की है
  • Electrobun, Blackboard का जारी किया गया पहला बड़ा product है

5 टिप्पणियां

 
myname1260 2026-03-03

इसमें co(lab) के पूर्ण rewrite की बात लिखी थी, इसलिए मैंने सोचा था कि यह Google के साथ मिलकर ipynb चलाने के लिए cloud stability बेहतर करने से जुड़ा होगा, लेकिन इसका उससे बिल्कुल संबंध नहीं था और यह Blackboard टीम का डेवलपमेंट प्रोजेक्ट निकला

फिर भी, npx से इंस्टॉल होने वाला OOPIF सुलभ होना एक महत्वपूर्ण अनुभव लगता है

 
geekbini 2026-02-24

"कोड signing·notarization·deployment·update की प्रक्रिया ऐप development से ज़्यादा framework से लड़ने जैसी लगती है"

मुख्य लेख में बैकग्राउंड के तौर पर ऐसा उल्लेख है,
वास्तव में कई बार ऐप development से ज़्यादा मेहनत deployment में लग जाती है।
सिर्फ इस समस्या को fix कर देने के लिए भी मैं इसे बहुत ऊँचा मूल्यांकन देता हूँ.

 
bus710 2026-02-24

Flutter में zig जोड़ना भी काफ़ी आसान और सरल निकला।
Dart/c ffi दस्तावेज़ों से बहुत ज़्यादा अलग नहीं...

 
mammal 2026-02-24

यह समझ नहीं आता कि प्रमुख Linux distributions डिफ़ॉल्ट WebView क्यों नहीं देतीं। यह app ecosystem के विस्तार में एक बड़ी बाधा है

GUI environment वाले operating system में अब WebView को एक default component के रूप में स्थापित हो जाना चाहिए।

 
GN⁺ 2026-02-24
Hacker News की राय
  • नमस्ते, मैं Electrobun का निर्माता हूँ
    हमने अभी v1 stable version रिलीज़ किया है। आर्किटेक्चर अब फिक्स हो चुका है, और अगर आपको कोई bug मिले या Electron/Tauri में इस्तेमाल होने वाली किसी API की ज़रूरत हो, तो कृपया उसे GitHub issue में दर्ज करें, हम उसे प्राथमिकता से देखेंगे
    पिछले एक महीने में 50,000 लाइनों के code में बदलाव करके हमने stabilization का काम पूरा किया है
    Electrobun से बना open source project Colab (web browser + code editor + PTY terminal) का demo video भी है
    Electrobun डिफ़ॉल्ट रूप से सिस्टम WebView का उपयोग करता है, लेकिन bundleCEF option के साथ CEF को bundle भी किया जा सकता है। इसकी संरचना WebView से स्वतंत्र है, इसलिए Servo या Ladybird तैयार होते ही उन्हें तुरंत बदला जा सकता है
    साथ ही, हर release में zstd-आधारित auto-compressed package बनता है, जिससे शुरुआती download size कम हो जाती है और updates को लगभग 14KB जितना छोटा रखा जा सकता है

    • जानना चाहता हूँ कि type definitions docs से मेल खाते हैं या नहीं। उदाहरण के लिए, BrowserWindow में partition key डालने पर TypeScript error आता है
    • Electrobun बनाने के लिए धन्यवाद
  • Electrobun बहुत promising लग रहा है। मैं अपना अगला project इसी से बनाऊँगा
    Full TypeScript stack में यह सबसे ज़्यादा productive लगता है। Rust या लंबे compile process के बिना Electron का एक हल्का और तेज़ विकल्प मिलना खुशी की बात है

    • मैंने अभी-अभी अपना पहला Tauri app पूरा किया, और Windows build में इतना समय लगने पर हैरानी हुई। Electrobun ज़रूर आज़माऊँगा
  • Discord पर बहुत से game developers Electrobun से desktop games पर experiment कर रहे हैं
    Steam indie game market में यह Electron के कुछ उपयोगों की जगह ले सकता है
    खासकर bun --watch game.ts के साथ instant reload वाला TypeScript game development experience बहुत तेज़ और smooth है

    • जो लोग web development ज़्यादा करते हैं, उनके नज़रिए से tool से अलग भी Bun performance के लिहाज़ से बड़ा छलांग है
    • Electron से बने games बहुत ज़्यादा नहीं हैं। मुझे CrossCode याद आता है। ज़्यादातर लोग Unity या Godot का उपयोग करते हैं
    • जानना चाहता हूँ कि ऐसे experiment किस Discord server में हो रहे हैं। मैं भी जुड़ना चाहूँगा
    • Node अब watch mode और TypeScript execution को भी support करता है
  • Tauri की मुख्य समस्या यह है कि सिस्टम WebView की quality हर OS में अलग होती है
    Linux में कोई official WebView नहीं है, और Windows 7 या शुरुआती 10 versions में Edge WebView इस्तेमाल नहीं होता। इन फ़र्क़ों की वजह से कभी-कभी boot होने में 20 सेकंड से ज़्यादा लग जाते हैं
    सिर्फ 100MB बचाने के लिए क्या ऐसे trade-off स्वीकार करने चाहिए, यह सवाल है
    ज़्यादातर users के पास तेज़ internet होता है, इसलिए download speed कोई बड़ी समस्या नहीं है
    मैं जानना चाहता था कि क्या Electrobun embedded Chromium renderer को support करता है, लेकिन docs में यह साफ़ नहीं था

    • Electrobun डिफ़ॉल्ट रूप से सिस्टम WebView का उपयोग करता है, लेकिन ज़रूरत होने पर CEF(Chromium) को bundle किया जा सकता है। यह official docs में लिखा है
    • product site पर भी “System’s native webview as renderer, CEF optional” लिखा है। यानी यह optional है
    • Windows पर Tauri app बनाते समय मुझे embedded bootstrapper इस्तेमाल करना पड़ा था। अच्छा लगा कि Electrobun ने शायद इस समस्या को अच्छी तरह हल किया है
    • समझ नहीं आता कि बड़े Linux distributions डिफ़ॉल्ट WebView क्यों नहीं देते। app ecosystem बढ़ाने में यह बड़ी रुकावट है
    • Tauri का CEF-आधारित version भी development में है। related branch देखी जा सकती है। OS WebView की कम quality को देखते हुए यह काफ़ी बेहतर समाधान लग सकता है
  • अच्छा होता अगर title में साफ़ लिखा होता कि यह project retrospective blog post है
    असली project को देखने के लिए official docs link ज़्यादा उपयुक्त है

  • project का main page यहाँ है
    interface काफ़ी साफ़-सुथरा लगता है, और मैं Zig से परिचित हूँ इसलिए Rust की तुलना में यह ज़्यादा approachable लग सकता है

  • इस हफ़्ते हमारी company एक नया Electron app deploy करने वाली है, और लगता है काश Electrobun एक साल पहले आ गया होता
    Electron Builder updates और signing process को कुछ हद तक आसान बना देता है, लेकिन फिर भी झंझट बना रहता है
    अपने अगले personal project में मैं Electrobun आज़माने की सोच रहा हूँ

  • लेख में notarizing और stapling की समस्या का ज़िक्र था, और अगर आप Xcode का उपयोग नहीं करते तो Apple इस process को बहुत मुश्किल बना देता है
    Windows में भी CI automation आसान नहीं है। अगर Electrobun कोई बेहतर solution देता है, तो मुझे बहुत रुचि है

    • ज़्यादातर मामलों में यह default settings के साथ support होता है। कुछ environment variables सेट करके notarize: true के साथ build कर दीजिए
      मैंने Electrobun के साथ कई बार signing और notarization किया है, और कोई समस्या नहीं आई। जटिल मामलों के लिए escape hatch भी दिया गया है
      अगर मदद चाहिए तो Discord पर DM कर सकते हैं। (मैं Electrobun से जुड़ा नहीं हूँ, लेकिन Apple notarization system की तकलीफ़ अच्छी तरह जानता हूँ)
  • अगर कोई Electron app 500MB से बड़ा हो, तो Electrobun का 14MB सच में बहुत छोटा size लगता है

    • macOS के लिए एक सामान्य Electron app (DMG) लगभग 80MB का होता है, जबकि Electrobun लगभग 16MB के आसपास है
  • अफ़सोस है कि Ubuntu के अलावा बाकी distributions अभी support scope से बाहर हैं
    इस पर चर्चा issue comment में देखी जा सकती है