Tauri與Electron的區(qū)別
它沒有裹挾一個瀏覽器內(nèi)核在最終包內(nèi)。這也是它 包小 的原因
-
由Rust調(diào)用系統(tǒng)的 Webview,來承載開發(fā)者的前端代碼,所以,需要處理 兼容性
不現(xiàn)操作系統(tǒng)帶的 WebView 版本不同,前段代碼需要處理瀏覽器兼容性
-
甚至系統(tǒng)可能沒有 WebView 需要單獨處理(包里帶一個webview?那和electron有何區(qū)別)
【官網(wǎng)】:Tauri應(yīng)用程序在macOS上運行所需的最低操作系統(tǒng)版本為10.13
【官網(wǎng)】:默認(rèn)情況下,Microsoft安裝程序(.msi)在Windows 7上不起作用,因為如果未安裝,則需要下載 WebView2引導(dǎo)程序(如果操作系統(tǒng)中未啟用TLS 1.2,則可能會失敗)。Tauri提供了一個嵌入WebView2引導(dǎo)程序的選項(請參閱下面的嵌入WebView 2引導(dǎo)程序部分)?;贜SIS的安裝程序(-setup.exe)也支持Windows 7上的下載引導(dǎo)程序模式。
【官網(wǎng)】:我們建議對 browserlist 和構(gòu)建目標(biāo)使用 es2021, last 3 Chrome versions, 和 safari13 。 Tauri 可以借用操作系統(tǒng)的原生渲染引擎(macOS上的WebKit,Windows上的WebView2和Linux上的WebKitGTK)。
-
性能:兩者本質(zhì)上都是基于 Chromium(windows 也切到 Chromium,非 Chromium 的 Webview 性能也沒好到哪里去),前端代碼渲染上差距很小,且由于 Tauri 多一個線程(為了多個進程共享運行時庫搞出來的),理論上 Tauri 會更差一些
但實際上,
electron hello world
tauri hello world上圖是兩個
hello world項目,electron 120M - tauri 60M,tauri小一半(這么看是挺香的,什么兼容性還是可以忍的)但我是MAC,webview 不是 Chromium 是 webkit,所以是不是說 tauri 性能差異也很大Electron 進程模型
基于 WebView2 的應(yīng)用程序進程模型 -
生態(tài):就 API 數(shù)量上來看,Tauri 大大少于 Electron。且 Rust(Tauri) 遠(yuǎn)比 Node(Electron) 門檻高,如果需要定制話一功能,比如需要使用本地數(shù)據(jù)庫 Sqlite,Tauri 只能以 Rust 開發(fā),或者依賴社區(qū)輸出封裝 Sqlite 的 Rust For Js 包,Node 可以調(diào)用
Electron APITauri 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).
目前社區(qū)不活躍,作為一個5年+的項目,整體比 Tauri 差很多
官方做了一個 Electron、Tauri、NodeGui、Wails、Neutralino、Flutter 各方面比較




from:





