Electron 与 Tauri:哪种跨平台框架更适合你?


Tauri 2.0 稳定版已于近日正式发布。在此之际,InfoWorld 资深作家 Serdar Yegulalp 发布了一篇文章,探讨了由 Rust 驱动的 Tauri 和由 JavaScript 驱动的 Electron 这两个跨平台框架之间差异。

Electron

“你很有可能是通过 Electron 的核心技术:a web browser 来阅读这篇文章的。”

Electron 最初由 GitHub 开发,依赖于几个关键的 web-browser 项目:Chromium(Google Chrome 和 Microsoft Edge 的基础)以及 Node.js(和 Google V8)JavaScript 运行时。Electron 项目将相当于 Chromium 驱动的 Web 浏览器的可移植实例以及应用程序代码重新打包。当应用程序启动时,它会启动浏览器,然后浏览器会加载与其捆绑在一起的基于 JavaScript 的应用程序。

在 Web 浏览器中可以实现的所有功能在 Electron 应用中都可以实现。事实上,Electron 应用可以做更多,因为打包的 browser bits 可以以传统基于浏览器的应用(如渐进式 Web 应用)无法实现的方式与本地系统协同工作。

许多流行的应用程序都使用了 Electron,Visual Studio Code 就是一个例子。Discord 消息应用程序、Obsidian 笔记程序、Docker Desktop、GitHub Desktop Slack 和 Basecamp 3 等也都是 。

对基于 Electron 的应用的一个常见(且完全正确)批评是其占用空间。Electron 应用自带其独特的、供应商提供的 Web 浏览器副本,并且在启动时必须启动一个完全独立的 Web 浏览器进程。Electron 应用可能占用数百兆或更多的磁盘空间,并且其内存占用空间通常也是如此。虽然现代硬件通常可以处理负载,但更大的问题出现了:有没有更好的方法来做到这一点?

Tauri

用 Rust 编写的 Tauri 项目的基本思想与 Electron 类似,但 Tauri 最大的不同在于它不捆绑整个浏览器。相反,无论应用程序在哪个操作系统上运行,Tauri 都会使用本地系统 webview 组件,应用可以以最小几兆字节的捆绑包形式交付。

Tauri 原生支持大量流行框架:Vue.js、Svelte、React、SolidJS、Angular、Preact、Yew、Leptos 和 Sycamore。用户还可以将现有的 Web 项目迁移到 Tauri 的后端。

但 Tauri 的一个可能的缺点是,要求用户需要一些 Rust 基础。应用程序的后端或“服务器端”部分是用 Rust 编写的,整个包被编译并作为独立的 Rust 可执行文件交付。

用户也可以将整个应用程序编写为客户端 JavaScript 应用程序,但会严重限制其功能。除了 Rust,还可以使用其他运行时或语言作为后端(例如 Python),但 Rust 更受青睐。对于还不熟悉 Rust 的人来说,可以通过 Tauri 存储库中的示例应用进行学习,同时还可以了解如何执行特定概念(例如启动时显示启动画面的应用程序)。

与 Electron 不同,目前还没有多少主流桌面应用程序使用 Tauri 构建。部分原因可能是 Electron 的遗留问题,或者 Rust 相对于 JavaScript 的相对复杂性。但相当多的应用程序(包括商业和开源应用程序)都是用 Tauri 编写的,譬如 PostgreSQL 的 pgMagic GUI 客户端、 Payload 文件传输工具和 Noor 团队聊天应用。

Tauri 和 Electron 哪个更好?

目前,Electron 仍然是跨平台 UI 框架中最突出和最容易理解的。尽管饱受批评,但它仍然是提供具有良好系统集成和丰富 GUI 的跨平台应用程序的流行默认选择。对 Electron 的内存消耗和二进制文件大小的抱怨是合理的,而且不会很快消失。它们与 Electron 应用程序的设计密切相关,只有重新设计 Electron 或底层浏览器组件才能解决这个问题。

Tauri 应用的设计从一开始就与众不同,占用更少的磁盘空间和内存。但代价是它是一种较新的技术,严重依赖 Rust——一种相对较新的语言,也拥有相对较新的开发生态系统。使用 Tauri 需要同时使用 Rust 和 JavaScript(分别用于后端和前端)。

结论:如果你已经熟练掌握 Rust 或计划投入使用,而且交付成果的大小和内存占用也很重要,那么 Tauri 就是最好的选择。如果你已经非常熟悉 JavaScript,尤其是你已经交付过其他基于 Electron 的应用程序,并希望利用这些知识,并且 Electron 的内存消耗和二进制文件大小不成问题,那么 Electron 是最好的选择。


相關推薦

2022-06-20

通过 JS Api 调用后台接口。 可以看到,Tauri 对标的正是 Electron。与 Electron 相比,Tauri 更加轻量、性能更好。 Tauri v.s Electron Detail Tauri Electron Installer Size Linux 3.1 MB 52.1 MB Memory Consumption Linux 180 MB 462 MB Launch Time Linux 0.39s 0

2023-01-20

源工具包,用于使用 HTML、CSS 和 JavaScript 等 Web 技术构建跨平台桌面应用程序。Tauri 在 7 月发布了 1.0 版,其核心库是用 Rust 编写的,该项目的重点是提高安全性和减少资源使用。Tauri 应用程序具有一个 Rust 二进制文件,用于管

2023-09-02

中,其中通常会包含网站的框架信息,来表示网站使用了哪种框架、哪种语言、哪种 Web 容器等信息,还有可能暴露框架版本,攻击者可以利用这类信息发起进一步攻击。所以我们增加了响应头的安全策略配置。 1.增加Co

2023-08-19

更重要的是,你可以大规模地进行测试,从而更好地决定哪种模式最适合你的特定用例。

2024-10-09

Tauri 2.0 稳定版已正式发布。 Tauri 是一个桌面 UI 框架,可让开发者使用每个平台的 Webview 技术栈为所有主要桌面操作系统构建应用程序,目前支持 Windows/macOS/Linux 等平台。开发者通过 Tauri 几乎可以使用任何编译为 HTML、JS 和 CSS

2023-05-04

的使用体验,快去更新试试看。 特征 相比传统的 Electron 套壳打包,要小将近 20 倍,5M 上下。 Pake 的底层使用的 Rust Tauri 框架,性能体验较 JS 框架要轻快不少,内存小很多。 不是单纯打包,实现了快捷键的透传、沉浸

2023-05-04

Tauri 今天正式发布了 1.3.0 版本。 Tauri 是一个桌面 UI 框架,可让开发者使用每个平台的 Webview 技术栈为所有主要桌面操作系统构建应用程序,目前支持 Windows/macOS/Linux 等平台。开发者通过 Tauri 几乎可以使用任何编译为 HTML、JS

2022-11-18

Tauri 1.2.0 已在上周正式发布。 Tauri 是一个桌面 UI 框架,可让开发者使用每个平台的 Webview 技术栈为所有主要桌面操作系统构建应用程序,目前支持 Windows/macOS/Linux 等平台。开发者通过 Tauri 几乎可以使用任何编译为 HTML、JS 和

2022-11-15

Tauri 1.2 发布了,Tauri 是一个框架,用于为所有主要桌面平台构建小巧、快速的二进制文件。开发人员可以集成任何可编译为 HTML、JS 和 CSS 的前端框架,以构建他们的用户界面。应用程序的后端是一个基于 Rust 的二进制文件,带

2023-01-19

这方面有天生的不足,尤其我们这种复杂的全栈型多端全平台产品类别项目,而且不在热点技术类别上,并且桌面开发早已是明日黄花(但是 Tauri 的成功,又让人感觉桌面开发也没有那么不堪)。虽然我们受益于 Rust,但是不可

2022-08-15

聊天应用 Element 的用户。Electron 是一个构建于 Chromium 和跨平台 JavaScript 运行时环境 Node.js 之上的前端框架。 对于发现的所有案例,安全研究人员已向 Electron 提交了漏洞以便官方进行修复,他们也因此获得了超过 1 万美元的

2023-06-30

cOS 等不同操作系统运行的单一代码库,使用 Web 技术创建跨平台桌面应用程序。但 WABetaInfo 指出,“由于它们是为了在不同的操作系统上工作而开发的,所以并没有真正优化,且可能会占用大量的资源。原生应用程序肯定可

2024-02-22

Electron 是一个使用 JavaScript、HTML 和 CSS 构建跨平台的桌面应用程序。它基于 Node.js 和 Chromium,被 Atom 编辑器和许多其他应用程序使用。Electron 兼容 Mac、Windows 和 Linux,可以构建出三个平台的应用程序。 Electron v29.0.0 更新

2022-10-01

面客户端 MrDoc 还提供了基于 Electron 开发的桌面客户端,跨平台支持 Windows、Linux 和 macOS。 移动端 APP 通过移动端 APP,你可以快速新建文集、文档,修改文档、上传图片、阅读文档。 总而言之,你所写的一切都在你自己的掌