15 ポイント 投稿者 GN⁺ 2024-11-22 | 5件のコメント | WhatsAppで共有
  • Electrobunは、Typescriptで書かれた超高速・軽量・クロスプラットフォームのデスクトップアプリケーションを構築・更新・配布するための完全なソリューションを提供することを目指している
  • bunを使用してメインプロセスを実行し、WebView Typescriptをバンドルし、zigで書かれたネイティブバインディングを含む
  • 主な機能

    • Typescript: メインプロセスとWebView向けのTypescriptを書くことができ、1つの言語で手軽に作業できる。
    • 高速: メインプロセスとWebViewプロセス間の分離によりセキュリティとパフォーマンスを確保し、高速で型付きのRPCを簡単に実装できる。
    • 小型: 約12MBの小さな自己解凍型アプリバンドルと、最小4KBのアプリアップデートにより、頻繁に配布しながら帯域コストを削減できる。
    • 完全統合: 5分以内にコードを書き始め、10分以内にデプロイできる完全統合ワークフローを提供する。

5件のコメント

 
tsboard 2024-11-27

Bunは使えば使うほど本当に気に入りました。何よりも、高速に動作するという目標を今なお着実に貫いている点が素晴らしいと思います。このプロジェクトはうまくいってほしいです。

 
aer0700 2024-11-23

既存のNode.jsで開発されたものをBun.jsで書き直そうとする試み? の一つなんでしょうか。
Bunはまだ使ったことがありませんし、すでにNodeで作っていて、作ったものをBunに移す予定もないのですが……
10年後はどうなっているかわかりませんね。念のため、少し触ってはおくべきかもしれません。

 
tinywolf 2024-11-23

wailsもちょっとした用途には使えます。

 
pmc7777 2024-11-22

Tauriに似ていますが、少し異なる方向性の試みがよく見られるので良いですね。

 
GN⁺ 2024-11-22
Hacker Newsの意見
  • ElectrobunはTauriに似ているが、Zigを使って高速でネイティブな部分を実装し、フロントエンド/UI部分により集中するプロジェクトである

    • これは興味深い提案だが、膨大な作業量を必要とする
  • Electrobunの開発者は、プロジェクトが初期段階にあり、ロードマップの更新が必要だと述べている

    • TauriのようにシステムWebViewを使用し、Chromiumをバンドルしない
    • ElectronのようにBunをメインプロセスとして使用し、TypeScriptをメインおよびブラウザコンテキストで使う
    • C/Objective-Cで書かれたネイティブバインディングをZigラッパーで包み、Bunプロセスがそれを実行する
    • クロスプラットフォームを目指しているが、安定性を優先している
    • CLIがアップデート、コード署名などを処理し、ビルドアーティファクトを生成してS3や静的ファイルホストにアップロードできる
    • Zigで最適化されたbsdiff実装により、4KBサイズのアップデートを自動生成する
    • Zstdを使う独自のZigセルフ抽出メカニズムで初回ダウンロードサイズを最小化する
    • Bunとブラウザプロセス間で、メソッドシグネチャとハンドラだけを書けばよい暗号化RPCメカニズムを提供する
    • OOPIF実装により、高性能で使いやすい分離されたブラウザコンテキストをHTML <electrobun-webview> 要素として埋め込める
  • OSごとの機能を純粋なTypeScriptでどのように管理しているのか、Tauriと比べてサイズと速度にどのような違いがあるのか気になるという意見がある

  • Electrobunのレンダリングエンジンについての質問があり、プロジェクト名はElectronを示唆しているが言及されていない

    • Electrobun Playgroundアプリのサイズは50.4MBで、その大部分はBunランタイムである
  • Electrobunの成長を見守るのは興味深いという意見があり、今すぐ参加はしないが、素晴らしいプロジェクトだと評価している

  • Electrobunは、Node.jsをBunに、ChromiumをWebViewに置き換えたElectronだという意見がある

  • クロスプラットフォームアプリを作るための代替案は、多ければ多いほど良いという意見がある

  • ElectrobunがNeutralinoJS、Electrino、DeskGapのような別のWebViewベースのフレームワークなのか、Nodeの代わりにBunを使う以外にどんな利点があるのか気になるという意見がある

    • 本当に軽量なクロスプラットフォームデスクトップアプリのためには、Qt、GTK、wxWidgets、FLTK 1.4のようなWebViewベースではないネイティブフレームワークを使うのがよいと提案している
  • メインプロセスとWebViewプロセスの分離による性能問題を懸念する意見がある

    • IPCブリッジを使ってデータを共有する必要があり、これは共有するすべてのデータをコピーしなければならないことを意味する
    • たとえば、ffmpegを使って動画をデコードする際には、各フレームをレンダリングする前にデコード済み画像をコピーしなければならない
  • Electronの代替としてBunを使うのはよいが、Electronよりましというのは低い基準だという評価がある

    • BunがFreeBSDで動作するのを待っており、クリスマスのウィッシュリストに入っていると述べている