Electrobun:优化 Electron 痛点,开启桌面应用开发新可能
Electron 虽能让开发者便捷地在不同平台打包 Web - UI 应用,且各处行为、UI/UX 和底层代码库近乎相同,但它捆绑完整的 Web 浏览器和 JavaScript 运行时,导致占用大量内存和磁盘空间。同时,Electrobun 应用程序附带大量预定义事件,可在本地或全局进行挂钩,构建配置也有自己的 API,方便开发者编写特定行为的钩子。而且,尽管下载的制品压缩效果不错,但由于 Bun

【导语:自 Electron 发布以来,虽为开发者提供跨平台打包 Web - UI 应用的便利,但存在占用大量内存和磁盘空间的问题。Electrobun 应运而生,它基于 Bun 运行时,减少应用空间占用,还具备内置更新机制,不过目前仍处于早期阶段。】

Electron 虽能让开发者便捷地在不同平台打包 Web - UI 应用,且各处行为、UI/UX 和底层代码库近乎相同,但它捆绑完整的 Web 浏览器和 JavaScript 运行时,导致占用大量内存和磁盘空间。而 Electrobun 使用 Bun 作为 JavaScript 运行时,无需捆绑浏览器即可运行,生成的包比普通的 Electron 小得多。不包含浏览器的压缩“Hello World”应用程序下载包大小通常约为 30MB。

Electrobun 在前端开发上没有偏好的框架,开发者既可以使用纯 JavaScript 或 TypeScript,也能选用 Svelte、Angular 或 React 等常见前端框架。后端通常用 TypeScript 编写,任何可作为 Bun 或 NPM 依赖项分发的代码都能使用。
其 API 提供了创建桌面应用程序常用组件的接口,如 `BrowserWindow`、`BrowserView`、`ContextMenu`、`ApplicationMenu` 和 `Tray` 等。同时,Electrobun 应用程序附带大量预定义事件,可在本地或全局进行挂钩,构建配置也有自己的 API,方便开发者编写特定行为的钩子。

多数应用程序框架虽有安装程序机制,但很少能提供升级已安装应用实例的方法。Electrobun 有自己的更新 API,包含检查更新和为每个版本生成补丁文件的机制。补丁是差分的,只包含上一版本的更改内容,通常非常轻量级。不过,只有从程序的上一个版本进行升级时才会下载并应用补丁,若跨版本更新则会直接下载最新版本的完整包。

目前,Electrobun 还处于早期阶段,存在一些问题。其文档有时与项目本身不同步,导致文档中的一些示例与样板设置生成的代码不一致。而且,尽管下载的制品压缩效果不错,但由于 Bun 运行时的大小,应用程序解压后的磁盘占用空间仍然相当大。
编辑观点:Electrobun 为解决 Electron 的痛点带来了新方案,其在空间占用、开发灵活性和更新机制上有亮点。但早期阶段的问题也需重视,未来能否完善并在市场站稳,值得关注。
更多推荐
所有评论(0)