介绍
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 的"复杂"之间的矛盾,为前端开发者提供一种更轻、更快、更简单的开发选择。
核心优势
-
轻量高效,体积小巧
Electrobun 打包后的应用自解压包仅约 12MB ,远小于 Electron 动辄上百 MB 的体积。更新时采用 bsdiff 算法,可实现最小 4KB 的增量补丁下载,极大降低分发成本和用户等待时间。
-
全栈 TypeScript,开发体验友好
与 Tauri 要求掌握 Rust 不同,Electrobun 允许开发者全程使用 TypeScript 编写主进程和 WebView 代码,无需学习新语言,特别适合纯前端背景的开发者。
-
开箱即用,构建流程一体化
提供完整的开发工具链,包括构建、测试、代码签名和自动更新机制,减少配置负担。支持极快的构建速度和小型增量更新(最小可达 14KB),提升迭代效率。
-
安全与性能兼顾
- 主进程与 WebView 进程完全隔离,提升安全性
- 基于 Bun 和 Zig 构建,性能优异
- 支持类型安全的 RPC 通信机制,增强稳定性
-
灵活的前端技术栈支持
可使用原生 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