Electron 是现在跨渠道桌面软件的首选开发结构,Tauri 则是最近出现的一个替代品,企图处理前者的最大痛点:体积臃肿,资源占用高。 作者特意用 Tauri 写了一个桌面运用。本文是他的运用感受,以及两者的全方位比较。
在本文中,我将运用真实世界的运用程序来比较 Electron 和 Tauri:Authme。 Authme 是一个简略的跨渠道双因素身份验证器运用程序,适用于桌面。它不是一个大运用程序,也不是很杂乱,十分合适进行一些比较。您能够在 GitHub 上检查 Electron 运用程序的源代码,Tauri 运用程序也在 GitHub 上。我的方针是 Tauri 运用程序最终会替代 Electron 运用程序。
Electron运用架构
什么是Electron?
Electron 是一个运用 JavaScript、HTML 和 CSS 等 Web 技术创立原生运用程序的结构。它负责处理困难的部分,因而您能够专心于运用程序的中心。如果您能够构建网站,则能够构建桌面运用程序。 -electronjs.org
运用架构
Electron 运用程序是用一般的 HTML 和 JavaScript 编写的。对于款式,我运用 TailwindCSS 和一些自定义 CSS。
Tauri运用架构
什么是Tauri?
Tauri是一个结构,用于为一切主要的桌面渠道构建细小的、快得惊人的二进制文件。开发者能够整合任何能够编译成HTML、JS和CSS的前端结构来构建他们的用户界面。运用程序的后端是一个rust来源的二进制文件,有一个前端能够交互的API。- Tauri GitHub
架构
我的 Tauri 运用程序正在运用更现代的仓库。构建工具是 Parcel,结构是 Svelte,当然还有 TypeScript 而不是 JavaScript。款式是运用 TailwindCSS 完结的。
比较
这不是一个面对面的比较,但运用程序基本上是相同的。
要害点:
1. 安装包
我们在这儿有一个明显的赢家:Tauri。
Tauri 运用程序安装程序约为 2.5MB(!!!),而 Electron 运用程序安装程序约为 85MB。
全包大小:
Tauri 的一个主要优势是:该运用程序被编译为二进制文件,这意味着您有必要是逆向工程专家才干反编译该运用程序。运用 Electron,您能够运用简略的 NPM 命令解压缩运用程序。
如果您的用户具有 Tauri 运用的 webview 的正确运转时,您只需向他们发送一个可执行文件,他们就不用安装任何东西。
2.启动时间
这不是一项科学测验,但运转运用程序并确认启动时间会发生明显的赢家:
- Tauri: ~ 2 秒
- Electron: ~ 4 秒
3.性能
这又不是科学测验,仅仅粗略的比较。这些测验来自我的 PC:i5-4570 CPU、16GB RAM、GTX 1660 和 Windows 11
Tauri (Windows)
Electron (Windows)
老实说,我对 Tauri 的希望更高,当然它运用的 RAM 更少,但不会太多。让我们看一下 Linux 方面的状况。
Tauri
Electron
哇,这对 Tauri 来说是一个巨大的成功!
4.运用后端
现在,Tauri 的缺陷之一出现了(或许说它最大的长处,我想这取决于你)。在您的 Electron 运用程序中,您运用 JavaScript 编写运用程序后端,因为 Electron 运用 Node.js 运转时。另一方面,Tauri 是用 Rust 编写的。现在,如果您了解 Rust,您可能会很快乐,但如果您有必要从头开始学习 Rust(像我相同),您将面对一些问题。
你有必要用Rust重写你的运用程序的后端,所以我以为这儿的赢家是Electron。就现在而言。Tauri的路线图上有其他的后端绑定方式,如Python、C++或Deno。就我个人而言,我很期待Deno的集成,这样我就能够再次用JavaScript/TypeScript来写我的运用后端了。
5.烘托你的运用
Electron 在后台运用 Chromium,因而您的用户在 Windows、Linux 和 macOS 上看到的内容相同。另一方面,Tauri 运用体系 webview:Windows 上的 Edge Webview2 (Chromium)、Linux 上的 WebKitGTK 和 macOS 上的 WebKit。现在欠好的部分来了,如果你是一个 Web 开发人员,你知道 Safari(根据 WebKit)总是落后于每个 Web 浏览器。总是有一个过错,你没有从Chrome浏览器中看到,只有你亲爱的Safari用户。同样的问题也存在于Tauri中,并且你不能对它做什么,你有必要包括polyfills。在这儿,赢家有必要是Electron。
我在开发 Tauri 时遇到的一个问题是我的 CSS 包不包括 -webkit
前缀,所以我的运用程序的 CSS 有许多过错。
6.安全
Tauri 默许状况下十分安全,另一方面,我不能对 Electron 说同样的话。 Tauri 默许内置了许多安全功能。您甚至能够显式启用或禁用某些 API。运用 Electron,您能够完全访问 Node API,因而黑客能够轻松运用十分强壮的 Node API。 Tauri 不是这种状况,您有必要显式公开 Rust 函数。
7.自动更新
在 2022 年发布没有自动更新的运用程序是不行的。如果您的用户有必要手动下载每个更新,我以为他们不会快乐。 Electron 和 Tauri 都有一个内置的自动更新程序,但 Tauri 更简略。在Electron中,我想大多数人都运用electron-updater。在Tauri中,你能够运用内置的,缺陷是你有必要保护自己的更新服务器,或许你能够运用一个简略的JSON文件,你有必要手动更新。Electron更新器从GitHub发布的二进制文件中提取,这要便利得多。
8.开发者经验
在 Tauri 中,您只需安装 Tauri CLI 即可取得整个软件包:热重载、为一切渠道构建运用程序、生成运用程序图标。 Electron 没有给你任何东西,仅仅结构自身。您现已设置了热重载、捆绑您的运用程序等…… Tauri 会为您处理一切。最好的来了:Tauri 与地球上的每个 Web 结构都兼容,它只需要一个 localhost url 或一切捆绑代码所在的文件夹。
总结
Electron正在被替代?是的,Tauri要好得多,但它依然错过了许多。几年后,我信任Tauri团队会赶上Electron的运用。我感到兴奋的是。Deno作为后端,更好的自动更新和iOS/Android支持。
原文:www.levminer.com/blog/tauri-…