如果你做过桌面应用开发,大概率听过两个名字:
Electron 和 Tauri。

Electron 让前端开发者第一次可以用 HTML + CSS + JavaScript 构建桌面软件,像 VS Code、Slack、Discord、Notion 等知名应用都在使用它。
但 Electron 也有一个被吐槽多年的问题:
应用体积太大。
一个简单的 Hello World 应用,打包后可能就超过 100MB。
后来,Tauri 出现了。

Tauri 通过调用系统原生 WebView 来减少应用体积,确实可以把应用压缩到十几 MB。
但它也带来了新的门槛:Rust。

对于很多纯前端开发者来说,学习 Rust 才能写桌面应用并不是一件轻松的事情。
于是桌面开发进入了一个“选择困难”的局面:
-
Electron: 简单,但臃肿 -
Tauri: 轻量,但需要 Rust
就在这个时候,一个新的开源项目开始受到开发者关注:
Electrobun。
它试图在两者之间找到一个平衡点。
什么是 Electrobun?
Electrobun 是一个 基于 TypeScript 的跨平台桌面应用框架。

它的设计目标很简单:
保留 Electron 的开发体验,同时拥有接近 Tauri 的轻量体积。
换句话说:
你依然可以用熟悉的前端技术写桌面应用,但应用体积会小很多。
Electrobun 的核心技术组合是:
Bun + System WebView + Zig
分别负责不同的部分。
Electrobun 的工作方式
Electrobun 的整体架构可以理解为三层。
1. 主进程:Bun 运行时
Electrobun 使用 Bun 来运行主进程代码。
Bun 是近年来非常火的 JavaScript 运行时,相比 Node.js 有几个明显优势:
-
启动速度更快 -
内存占用更低 -
内置打包工具
因此桌面应用在启动和运行时都会更加流畅。
2. 渲染层:系统 WebView
Electron 的界面来自 Chromium 浏览器。
而 Electrobun 选择直接调用操作系统提供的浏览器组件:
-
macOS → WebKit -
Windows → Edge WebView2
这样做的最大好处就是:
不再需要打包整个浏览器内核。
3. 原生层:Zig
Electrobun 的底层绑定使用 Zig 语言实现。
Zig 是一种现代系统编程语言,特点包括:
-
高性能 -
简洁语法 -
与 C 语言兼容
Zig 主要负责连接 JavaScript 与操作系统 API。
开发者不需要编写 Zig,但可以享受到它带来的性能优势。
为什么 Electrobun 会被关注?
Electrobun 之所以迅速走红,主要是因为它解决了 Electron 长期存在的几个痛点。
1. 应用体积更小
Electron 的应用体积通常很大,因为每个应用都会打包:
-
Chromium 浏览器 -
Node.js runtime
而 Electrobun 使用系统 WebView,因此无需打包浏览器。
实际效果大致是:
Electron 应用
≈ 100MB+
Electrobun 应用
≈ 10~15MB
体积减少了接近 **80%**。
2. 启动速度更快
Electron 启动流程:
启动 Chromium
启动 Node.js
启动 Renderer
Electrobun 的流程更简单:
启动 Bun
加载 WebView
省去了浏览器内核加载过程,因此启动速度更快。
3. 全程 TypeScript 开发
Electrobun 的一个重要特点是:
整个项目都可以使用 TypeScript 编写。
包括:
-
主进程逻辑 -
UI 界面 -
进程通信
开发体验和普通 Web 项目非常接近。
同时支持主流前端框架:
-
React -
Vue -
Svelte
几乎可以直接复用已有技术栈。
4. 类型安全 RPC
Electrobun 内置类型安全 RPC。
主进程定义的函数,在前端调用时会自动获得类型提示。
例如:
export function getUser() {
return { name: "Electrobun" }
}
在前端调用时 IDE 会自动提示返回值类型。
这对大型项目来说非常重要。
5. 支持差分更新
Electrobun 内置差分更新机制。
如果应用升级时只有少量变化,用户只需要下载补丁文件。
有些更新甚至只有:
≈ 14KB
相比重新下载完整安装包,更新体验会好很多。
如何快速开始使用 Electrobun?
Electrobun 的上手非常简单。
只需要安装 Bun 并执行一条命令即可创建项目。
1. 安装 Bun
如果还没有安装 Bun,可以执行:
Mac / Linux:
curl -fsSL https://bun.sh/install | bash
Windows:
powershell -c "irm bun.sh/install.ps1 | iex"
安装完成后可以检查版本:
bun --version
2. 创建 Electrobun 项目
使用官方脚手架创建项目:
npx electrobun init
根据提示填写项目名称即可完成初始化。
3. 项目结构
创建完成后,大致结构如下:
src
├ main
│ └ main.ts
└ web
└ index.html
其中:
-
main:主进程代码 -
web:前端界面
4. 运行项目
进入项目目录后执行:
bun run dev
程序会自动启动桌面窗口。
5. 构建应用
开发完成后可以构建应用:
bun run build
构建完成后会生成可执行文件。
通常体积在 十几 MB 左右。
Electrobun 适合什么项目?
Electrobun 特别适合开发一些 轻量桌面应用:
例如:
-
AI 客户端 -
开发者工具 -
本地工具软件 -
小型桌面应用
如果你的需求是:
-
希望使用前端技术栈 -
不想忍受 Electron 的巨大体积 -
也不想学习 Rust
Electrobun 会是一个不错的选择。
当然,它仍然很年轻
Electrobun 目前还处于早期阶段。
相比 Electron 十多年的生态积累,它仍然需要时间成长,例如:
-
插件生态 -
社区规模 -
文档完善程度
此外,由于依赖系统 WebView,不同操作系统版本之间可能存在一些渲染差异。
但这也是大多数 WebView 框架都会面临的问题。
写在最后
桌面应用开发正在进入新的阶段。
过去十多年,Electron 几乎是默认选择。
而现在,开发者有了越来越多新的方案:
-
Electron -
Tauri -
Flutter Desktop -
Wails -
Electrobun
Electrobun 并不是 Electron 的终结者,但它提供了一种新的平衡:
轻量、快速、对前端友好。
如果你正在寻找一种更轻量的桌面开发方案,不妨尝试一下 Electrobun。
-
Github 地址: https://github.com/blackboardsh/electrobun
微信赞赏
支付宝扫码领红包






