tauri vs electron
这里写自定义目录标题
- 1. tauri vs electron
- 1.1. Tauri 是什么
- 1.2. 前端看法
- 1.3. 开源项目作者看法
1. tauri vs electron
1.1. Tauri 是什么
Tauri 是一个跨平台 GUI 框架,与 Electron 的思想基本类似。Tauri 的前端实现也是基于 Web 系列语言,Tauri 的后端使用 Rust。Tauri 可以创建体积更小、运行更快、更加安全的跨平台桌面应用。
1.2. 前端看法
tauri 这个时候火是要带这个时间点的背景来看的,其中我认为最重要的 2 点是 rust 和 webview2。
rust
- rust 多受欢迎这里不多表述,仅抛几个链接,linux 内核接纳 rust, deno 采用 rust, 微软拥抱 rust, fuchsia 的 rust 代码占比超 50%, Apple 在底层 all-in rust, 连续 6 年的 stackoverflow 最受欢迎语言。
- tauri 采用的 rust 对应了 electronjs 的 nodejs, 没有 nodejs 这个 runtime, 也就更薄。nodejs 的最大优势是异步事件驱动 libuv 和 js 语言。rust 基于 future 的 tokio 等库有得一比,(且熟悉的 async await 开箱可用)。rust 强烈拥抱 wasm 对各端语言的开发者诱惑力很大。
- rust 被很多开发者定位为系统编程,对系统 api 的集成和调用优势很大。
- rust 还有满多优势:编译期内存安全、零成本抽象、支持高并发、丰富类型系统、易用的 cargo 包管理、ffi 编译友好(和 node-gyp 比更友好)
- 缺点是学习门槛高,但对于 c/c++开发者而言包管理、标准库、编译期内存安全等诱惑力十足。
webview2
- tauri 使用的渲染库 wry 在 macos 下采用 Webkit.framework, 在 windows 下采用了 webview2。
- 微软对 webview2 runtime 的支持力度比较大。为提升 office 应用、outlook 等的体验,2021 年 4 月开始对 windows 2101 版本以上进行推送。具体覆盖率数据目前不清楚(看有没哪位大神可以透露下)。
- 不同应用可以共享 webview2。electronjs 想实现的共享运行时被 webview2 实现了。
- webview2 runtime 122MB, win11 预装了,win11 之前的版本可以内嵌到应用的安装包,可以复用非稳定版 edge 浏览器的 runtime(稳定版不复用), 也可以单独下载(推荐,这样不同 tauri 应用可以共享 runtime)。
- webview2 runtime 的常青模式甚至可以做到比 electronjs 的 chromium 更新更快。
- 微软内部桌面应用逐渐从 electron 切换到 webview2。
总而言之 tauri 是卡着时间点的框架,是桌面应用螺旋形上升发展的一个现象级框架。
1.3. 开源项目作者看法
作为 Electron 的替代方案,这类的框架越来越多,tauri 只是其中之一,他们都尝试解决 Electron 的两个比较明显的的问题:
- 包太大,因为 electron 会自动塞入 Chromium 和 nodejs, 一个什么也不做的 electron 项目压缩后也大概要 50m。
- 内存消耗过大,因为 Chromium 本身就很吃内存,再加上提供操作系统访问能力的 nodejs, 很可观的内存消耗,对小工具类的项目不友好。
tauri 看了一下,不再塞入 Chromium 和 nodejs, 前端使用操作系统的 webview, 后端和操作系统集成这块使用 rust 实现,理论上应该比 nodejs 要精简高效,类似的项目还有:
- NeutralinoJS 前端嵌入一个 webview, 后端直接实现一个 c++ 实现的 http server。
- Chromely 前端嵌入一个 CEF, 后端使用 .NET。
- electrino 和 tauri 类似,使用系统的 webview, 并实现一个后端 (windows 下似乎也是基于 .NET)。
- go-astilectron 仍然基于 Electron, 但后端换成 go 语言。
- wails webview+go 的后端
但是这类项目的问题都在于:不成熟,基本上看下文档就知道了,作为开发桌面应用的方案,操作系统访问的 api 很少,甚至不具备 ( 或者是没有写文档?), 很难用于开发正式的项目,但是值得关注,一旦成熟起来,替代 Electron 就大有希望。
tauri vs electron相关推荐
- Tauri vs. Electron:比较、操作方法和迁移指南
九年前,Electron 团队通过引入一个允许我们使用基本的 HTML.CSS 和 JavaScript 知识快速构建一个框架,彻底改变了我们创建桌面应用程序的方式.除非受到有效批评,否则 Elect ...
- 手把手教你用 Tauri+Vue 创建小型桌面应用
作者 | Kelvin Omereshone 译者 | 王强 策划 | 李俊辰 作为 Electron 的替代方案之一,Tauri 可通过已有的 HTML.CSS 和 JavaScript 创建小型. ...
- 2021 大前端技术回顾及未来展望
作者:腾讯 IMWeb 前端团队 2021 年大前端领域没有出现革命性的明星项目,但在各个细分的技术领域都有一定的拓展与深耕,有很多新技术或者新特性有望在 2022 年迎来爆发.在互联网 " ...
- 10 分钟把你的 Web 应用转为桌面端应用
在桌面端应用上,Electron 也早已做大做强,GitHub桌面端.VSCode.Figma.Notion.飞书.剪映.得物都基于此.但最近后起之秀的 Tauri 也引人注目,它解决了 Electr ...
- Turbopack 很火? 那么就从前端角度看 Rust
关于 Rust rust 是一门强类型的.编译型的.内存安全的编程语言.最早版本的 Rust 原本是 Mozilla 基金会的一名叫 Graydon Hoare 的员工的私人项目,2009 年开始,M ...
- 科技爱好者周刊(第 213 期):知识孤岛,知识软件
这里记录每周值得分享的科技内容,周五发布. 本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容. 周刊讨论区的帖子<谁在招人?>,提供大量程 ...
- 前端已死? 2023 年前端十大 Web 趋势
点击"开发者技术前线",选择"星标" 让一部分开发者看到未来 作者 | Robin Wiruch 来自|infoQ 译者 | 核子可乐 策划 | 丁晓昀 虽然就 ...
- 科技爱好者周刊(第 220 期):人工智能的机会在哪里
这里记录每周值得分享的科技内容,周五发布. 本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容. 周刊讨论区的帖子<谁在招人?>,提供大量程 ...
- 2023 年前端十大 Web 发展趋势
很长一段时间,Web 开发的前景似乎没有什么进展(2016 年至 2021 年),但在刚刚过去的 2022 年中确实又猛窜了一波.今天主要想跟大家聊聊最新 Web 开发趋势.相信这波浪潮会继续激发 W ...
最新文章
- 队爷的 Au Plan(dp+单调队列)
- 老生常谈:工厂模式兄弟姐妹
- step1.day11 C语言基础练习之指针和二级指针
- 传奇霸业微端登陆服务器无响应,传奇霸业微端和浏览器崩溃白屏修复教程
- 好文章,被架构师秒杀之后
- 2019 最全支付宝高级Java现场面试37题
- 近期计算机视觉算法竞赛汇总—总奖池超300万人民币
- 168输出为861java_AcWing 861. 二分图的最大匹配-java-关键处注释
- 前端学数据库之基础操作
- MySQL 基础理论面试题整理
- python 中gcd用法_Python中while语句的基本用法不了解一下嘛?
- (4)数据结构-线性表补充
- 用VFP实现一个网盘软件,上传,下载,删除一个不少
- 嵌入式Ubuntu 搭建caffee环境
- matlab2c使用c++实现matlab函数系列教程-pascal函数
- 主流编程语言的特点以及优缺点(一)
- python3 + scrapy爬取妹子图(meizitu.com)
- Runaway Robot游戏通关算法实现过程总结
- 【枚举的定义;枚举变量的定义、初始化和赋值】(学习笔记16--枚举)
- 耳机插头3.5与2.5三段与四段i版与n版等详解