electrobun 使用TypeScript构建超快速、小巧且跨平台的桌面应用程序(待续)

介绍

repo:https://blackboard.sh/blog/electrobun-v1/

Electrobun是一个完整的框架:包括跨平台窗口控件、菜单、快捷键、全局快捷键、剪贴板、对话框、网页视图分区、会话存储、页面内查找功能,以及围绕打包和更新的坚实工具集。

安装

复制代码
bunx electrobun init

import { BrowserWindow } from "electrobun/bun";

const win = new BrowserWindow({
  title: "My App",
  url: "views://mainview/index.html",
});

Electrobun 是一个基于 Bun 运行时、使用 TypeScript 构建跨平台桌面应用的新兴框架,旨在解决 Electron 的"臃肿"与 Tauri 的"复杂"之间的矛盾,为前端开发者提供一种更轻、更快、更简单的开发选择。

核心优势

  1. 轻量高效,体积小巧

    Electrobun 打包后的应用自解压包仅约 ‌12MB ‌,远小于 Electron 动辄上百 MB 的体积。更新时采用 bsdiff 算法,可实现最小 ‌4KB‌ 的增量补丁下载,极大降低分发成本和用户等待时间。

  2. 全栈 TypeScript,开发体验友好

    与 Tauri 要求掌握 Rust 不同,Electrobun 允许开发者全程使用 TypeScript 编写主进程和 WebView 代码,无需学习新语言,特别适合纯前端背景的开发者。

  3. 开箱即用,构建流程一体化

    提供完整的开发工具链,包括构建、测试、代码签名和自动更新机制,减少配置负担。支持极快的构建速度和小型增量更新(最小可达 14KB),提升迭代效率。

  4. 安全与性能兼顾

    • 主进程与 WebView 进程完全隔离,提升安全性
    • 基于 Bun 和 Zig 构建,性能优异
    • 支持类型安全的 RPC 通信机制,增强稳定性
  5. 灵活的前端技术栈支持

    可使用原生 HTML 或现代前端框架(如 Preact、SolidJS)开发界面,并支持系统原生 WebView 或即将推出的 Chromium 引擎选项。

适用场景

  • 快速开发小型工具类应用(如本地 Markdown 编辑器、API 调试工具)
  • 需要频繁小版本更新的商业软件
  • 资源受限但追求高性能的跨平台应用
  • 希望避免 Electron 体积负担又不想学习 Rust 的前端团队

技术依赖与注意事项

Electrobun 强依赖 ‌Bun 运行时‌,虽然 Bun 发展迅速,但在某些边缘场景下的稳定性仍需验证。因此,对于 VS Code 级别的大型企业应用,Electron 仍是更稳妥的选择;若团队具备 Rust 能力且追求极致性能,Tauri 依然占优。


要不要我‌整理一份Electrobun与Electron、Tauri的对比表格‌,帮你快速看清三者的适用边界?

实践

安装

复制代码
# macOS/Linux
curl -fsSL https://bun.sh/install | bash

# Windows (通过 Winget)
winget install oven.bun

如果已经安装好了bun,还可以这样安装

复制代码
bun install electrobun

创建项目

复制代码
bun create electrobun your-app-name
cd your-app-name

bun create electrobun myapp
cd myapp

总结

没搞定,以后再弄

调试

bun create electrobun 报错

(ttsvenv) G:\work>bun create electrobun myapp

error: GET https://registry.npmmirror.com/create-electrobun - 404

可能用bun install的不对,还是用这条语句安装

复制代码
winget install oven.bun

不行,临时使用官方源

复制代码
bun create electrobun myapp --registry https://registry.npmjs.org

不行

尝试换源

在项目文件夹下创建文件**bunfig.toml**,并输入以下内容:

复制代码
[install]
registry = "https://registry.npmmirror.com/"

然后便可以使用安装命令:

复制代码
bun install

结果bun upgrade的时候还是很慢....并提示

复制代码
bun upgrade
Bun v1.3.9 is out! You're on v1.3.6
Downloading [1B/38.77MiB] Bun upgrade failed with error: ConnectionRefused

Please upgrade manually:
  powershell -c 'irm bun.sh/install.ps1|iex'

尝试使用powershell -c 'irm bun.sh/install.ps1|iex'

结果报错

复制代码
powershell -c 'irm bun.sh/install.ps1|iex'
Unable to create process using 'E:\python.exe E:\Scripts\conda-script.py shell.powershell hook'
-=O=-                                                                                                        #       #       #     #          curl: (35) Recv failure: Connection was reset

WARNING: The command 'curl.exe https://github.com/oven-sh/bun/releases/latest/download/bun-windows-x64-baseline.zip -o
C:\Users\Admin\.bun\bin\bun-windows-x64-baseline.zip' exited with code 35
Trying an alternative download method...
Install Failed - could not download https://github.com/oven-sh/bun/releases/latest/download/bun-windows-x64-baseline.zip
The command 'Invoke-RestMethod https://github.com/oven-sh/bun/releases/latest/download/bun-windows-x64-baseline.zip -OutFile C:\Users\Admin\.bun\bin\bun-windows-x64-baseline.zip' exited with code 35

尝试bunx electrobun init 报错

Downloading electrobun CLI for your platform...

Error: Failed to download electrobun CLI: connect ETIMEDOUT 20.205.243.166:443

相关推荐
吴声子夜歌2 小时前
小程序——生命周期函数和事件处理函数
服务器·前端·小程序
薛一半3 小时前
React的数据绑定
前端·javascript·react.js
爱看书的小沐3 小时前
【小沐杂货铺】基于Three.js渲染三维无人机Drone(WebGL / vue / react )
javascript·vue.js·react.js·无人机·webgl·three.js·drone
天若有情6735 小时前
从 try-catch 回调到链式调用:一种更优雅的 async/await 错误处理方案
前端·异常处理·前端开发·async·异步·await·异步编程
ShenJLLL10 小时前
vue部分知识点.
前端·javascript·vue.js·前端框架
恋猫de小郭11 小时前
你是不是觉得 R8 很讨厌,但 Android 为什么选择 R8 ?也许你对 R8 还不够了解
android·前端·flutter
PineappleCoder11 小时前
告别“幻影坦克”:手把手教你丝滑规避布局抖动,让页面渲染快如闪电!
前端·性能优化
武帝为此12 小时前
【Shell变量替换与测试】
前端·chrome
CappuccinoRose12 小时前
CSS 语法学习文档(十九)
前端·css·属性·flex·grid·学习资源·格式化上下文