• मेन प्रोसेस में 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 है

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.