Electron
Electron 是一个使用 JavaScript、HTML 和 CSS 等 Web 技术创建原生应用程序的框架。它负责处理困难的部分,因此您可以专注于应用程序的核心。如果您可以构建网站,则可以构建桌面应用程序。
Tauri
Tauri 是一个框架,用于为所有主要桌面平台构建微小、极快的二进制文件。开发人员可以集成任何可编译为 HTML、JS 和 CSS 的前端框架来构建他们的用户界面。应用程序的后端是一个来自 rust 的二进制文件,带有一个前端可以与之交互的 API。
Electron vs Tauri
Electron 的安装包通常都要几十 M,而 Tauri 只有几 M,在这点上,Tauri 完全碾压 Electron。
Tauri 打包的应用程序是二进制的,因此逆向破解不容易,而对于 electron 应用可以通过 npm 命令进行加压缩应用程序。
在启动时间上 Tauri 相对也要快一些,这也是很多 electron 应用被人诟病最多的点。
在应用性能方面,Electron 占用的内存更多,特别是在 linux 上,似乎 Electron 占用更多的内存。
在安全性上,Tauri 可以说非常安全,它默认内置了很多安全功能,你可以通过禁用某些 api 来实现更加安全的应用。而对于 Electron 来说,node api 可以完全控制整个应用。
对于更新来说,两者都提供了自动更新的功能,通过使用 electron-updater,electron 应用可以非常简单地从 github 上获取二进制文件。对于 Tauri 来说,我们需要自己维护更新服务器。
在开发效率上,如果你是前端用户的话,那么对于 electron 应用来说,你的开发效率会很高,但是对于后端用户来说,或者说对于 Rust 用户来说,tauri 开发会更便捷。
总结
虽然 js 的强大有目共睹,曾经的 h5 也曾经想要取代移动应用,虽然现在依然还有很多混生 app,但是相对于原生移动应用程序来说,它还不是主流。
electron 等应用框架本想让前端在桌面端也可以大放异彩,但是相对来说,原生应用还是占据主导地位。
其实不管 electron 也好,tauri 也罢,它们都是在降低开发者在开发应用上面的难度,但是很多时候,对于用户来说,性能和用户体验远比开发者开发体验要重要百倍,千倍。