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

Electron 和 Tauri

图片

Electron 让前端开发者第一次可以用 HTML + CSS + JavaScript 构建桌面软件,像 VS CodeSlackDiscordNotion 等知名应用都在使用它。

但 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
扫码领红包

微信赞赏支付宝扫码领红包

发表回复

后才能评论