Tauri与Electron的区别
-
它没有裹挟一个浏览器内核在最终包内。这也是它 包小 的原因
-
由Rust调用系统的 Webview,来承载开发者的前端代码,所以,需要处理 兼容性
-
不现操作系统带的 WebView 版本不同,前段代码需要处理浏览器兼容性
-
甚至系统可能没有 WebView 需要单独处理(包里带一个webview?那和electron有何区别)
【官网】:Tauri应用程序在macOS上运行所需的最低操作系统版本为10.13
【官网】:默认情况下,Microsoft安装程序(.msi)在Windows 7上不起作用,因为如果未安装,则需要下载 WebView2引导程序(如果操作系统中未启用TLS 1.2,则可能会失败)。Tauri提供了一个嵌入WebView2引导程序的选项(请参阅下面的嵌入WebView 2引导程序部分)。基于NSIS的安装程序(-setup.exe)也支持Windows 7上的下载引导程序模式。
【官网】:我们建议对 browserlist 和构建目标使用 es2021, last 3 Chrome versions, 和 safari13 。 Tauri 可以借用操作系统的原生渲染引擎(macOS上的WebKit,Windows上的WebView2和Linux上的WebKitGTK)。
-
-
性能:两者本质上都是基于 Chromium(windows 也切到 Chromium,非 Chromium 的 Webview 性能也没好到哪里去),前端代码渲染上差距很小,且由于 Tauri 多一个线程(为了多个进程共享运行时库搞出来的),理论上 Tauri 会更差一些
但实际上,
electron hello world
tauri hello world上图是两个
Electron 进程模型hello world
项目,electron 120M - tauri 60M,tauri小一半(这么看是挺香的,什么兼容性还是可以忍的)但我是MAC,webview 不是 Chromium 是 webkit,所以是不是说 tauri 性能差异也很大
基于 WebView2 的应用程序进程模型 -
生态:就 API 数量上来看,Tauri 大大少于 Electron。且 Rust(Tauri) 远比 Node(Electron) 门槛高,如果需要定制话一功能,比如需要使用本地数据库 Sqlite,Tauri 只能以 Rust 开发,或者依赖社区输出封装 Sqlite 的 Rust For Js 包,Node 可以调用
Electron API Tauri API -
安全性:Electron 非主进程代码会输出的是 ASAR 文件,Tauri 是流文件。看起来 Tauri 是更安全的,但是在前端代码上谈安全性,嗯....
Wails 基于 GO
渲染模式和 Tauri 一样,比较新,目前属于一个要啥啥没有的阶段。有人是这么推荐的:喜欢 Rust 用 Tauri,喜欢 GO 用 Wails,都不会且没有定制化需求用 Tauri,否则老实用 Electron
Neutralino
渲染模式和 Tauri 一样,但它号称
You can extend Neutralinojs with any programming language (via extensions IPC) and use Neutralinojs as a part of any source file (via child processes IPC).
目前社区不活跃,作为一个5年+的项目,整体比 Tauri 差很多
官方做了一个 Electron、Tauri、NodeGui、Wails、Neutralino、Flutter 各方面比较
主要特征 包大小 内存占用 启动时间from:
网友评论