讨论一下 Wails、Tauri、Flutter、Electron 这几种热门的桌面客户端技术栈

宣传主张


各自叙事

Wails & Tauri 轻量派 / 系统原生

Wails (v2) 和 Tauri 都采用系统自带的浏览器引擎,因此无需捆绑打包体积小的内核,安装包通常在 10MB 以内,对比 Electron 动辄 100MB+ 的体量,差距明显。

同时得益于 Golang 和 Rust 本身的性能优势,两者的启动速度接近原生应用级别。

主要差异


Flutter 自成一派

Flutter 主打自绘渲染,不依赖系统 WebView,这意味着它在所有平台上拥有完全一致的渲染表现。

上限极高,能实现复杂动画和高帧率渲染,轻松达到 60 FPS 甚至 120 FPS+

同时 Flutter 的插件生态丰富,可以快速实现桌面端和移动端的统一开发
Android、iOS、macOS、Windows、Linux 都支持

对于需要完全平台一致 UI 表现的场景,Flutter 是很强的选择(但需要掌握 Dart)


Electron 不依赖系统

Electron 本质是 Chromium + Node.js,目标是提供跨平台、稳定且成熟的体验。

这也是它体积大但生态最成熟的原因:

你不需要担心用户的系统版本、WebView 版本、字体渲染差异

👉 VS Code、Slack、Discord、Figma 等大量产品都基于 Electron


辩论的看点

商业角度

👉 一致性 vs 成本

Wails(v2)和 Tauri 最大的痛点:

👉 依赖系统 WebView 引擎

不同系统、不同版本:

系统 内核 差异点
Windows Edge WebView2 不同版本 WebView2 Runtime 版本可能不同
macOS Safari WebKit 部分 CSS / JS 特性支持差异
Linux WebKitGTK 发行版差异较大

再叠加系统缩放、字体、DPI 等差异
👉 会导致 UI 一致性问题

如果一定要用 Wails / Tauri:


Flutter 的问题

Flutter 因为是自绘:


Electron 的优势

Electron 几乎没有一致性问题:

👉 因为所有用户运行的是同一套 Chromium

但代价是:


体验角度

小而美 vs 大而全

Wails、Tauri、Flutter 都更适合:

👉 Golang / Rust / Dart 技术栈开发者

例如你在接入 Ollama 或 AI 能力时:

而 Electron:

👉 更适合纯前端(Web)开发者


性能对比(大致)


开发体验


生态角度

成熟度 / 成本对比

维度 Electron Tauri Wails Flutter
社区规模 ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐⭐
生产案例 VS Code / Slack / Discord 较少 较少 Google Ads / BMW
学习成本 ⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐
生态成熟度 ⭐⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐
启动速度
内存占用 ⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐

总结

👉 如果你的项目:


原帖:https://linux.do/t/topic/1911755
已获得转载授权

转载授权

❤️ 转载文章请注明出处,谢谢!❤️