这里写自定义目录标题

  • 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相关推荐

  1. Tauri vs. Electron:比较、操作方法和迁移指南

    九年前,Electron 团队通过引入一个允许我们使用基本的 HTML.CSS 和 JavaScript 知识快速构建一个框架,彻底改变了我们创建桌面应用程序的方式.除非受到有效批评,否则 Elect ...

  2. 手把手教你用 Tauri+Vue 创建小型桌面应用

    作者 | Kelvin Omereshone 译者 | 王强 策划 | 李俊辰 作为 Electron 的替代方案之一,Tauri 可通过已有的 HTML.CSS 和 JavaScript 创建小型. ...

  3. 2021 大前端技术回顾及未来展望

    作者:腾讯 IMWeb 前端团队 2021 年大前端领域没有出现革命性的明星项目,但在各个细分的技术领域都有一定的拓展与深耕,有很多新技术或者新特性有望在 2022 年迎来爆发.在互联网 " ...

  4. 10 分钟把你的 Web 应用转为桌面端应用

    在桌面端应用上,Electron 也早已做大做强,GitHub桌面端.VSCode.Figma.Notion.飞书.剪映.得物都基于此.但最近后起之秀的 Tauri 也引人注目,它解决了 Electr ...

  5. Turbopack 很火? 那么就从前端角度看 Rust

    关于 Rust rust 是一门强类型的.编译型的.内存安全的编程语言.最早版本的 Rust 原本是 Mozilla 基金会的一名叫 Graydon Hoare 的员工的私人项目,2009 年开始,M ...

  6. 科技爱好者周刊(第 213 期):知识孤岛,知识软件

    这里记录每周值得分享的科技内容,周五发布. 本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容. 周刊讨论区的帖子<谁在招人?>,提供大量程 ...

  7. 前端已死? 2023 年前端十大 Web 趋势

    点击"开发者技术前线",选择"星标" 让一部分开发者看到未来 作者 | Robin Wiruch 来自|infoQ 译者 | 核子可乐 策划 | 丁晓昀 虽然就 ...

  8. 科技爱好者周刊(第 220 期):人工智能的机会在哪里

    这里记录每周值得分享的科技内容,周五发布. 本杂志开源(GitHub: ruanyf/weekly),欢迎提交 issue,投稿或推荐科技内容. 周刊讨论区的帖子<谁在招人?>,提供大量程 ...

  9. 2023 年前端十大 Web 发展趋势

    很长一段时间,Web 开发的前景似乎没有什么进展(2016 年至 2021 年),但在刚刚过去的 2022 年中确实又猛窜了一波.今天主要想跟大家聊聊最新 Web 开发趋势.相信这波浪潮会继续激发 W ...

最新文章

  1. 队爷的 Au Plan(dp+单调队列)
  2. 老生常谈:工厂模式兄弟姐妹
  3. step1.day11 C语言基础练习之指针和二级指针
  4. 传奇霸业微端登陆服务器无响应,传奇霸业微端和浏览器崩溃白屏修复教程
  5. 好文章,被架构师秒杀之后
  6. 2019 最全支付宝高级Java现场面试37题
  7. 近期计算机视觉算法竞赛汇总—总奖池超300万人民币
  8. 168输出为861java_AcWing 861. 二分图的最大匹配-java-关键处注释
  9. 前端学数据库之基础操作
  10. MySQL 基础理论面试题整理
  11. python 中gcd用法_Python中while语句的基本用法不了解一下嘛?
  12. (4)数据结构-线性表补充
  13. 用VFP实现一个网盘软件,上传,下载,删除一个不少
  14. 嵌入式Ubuntu 搭建caffee环境
  15. matlab2c使用c++实现matlab函数系列教程-pascal函数
  16. 主流编程语言的特点以及优缺点(一)
  17. python3 + scrapy爬取妹子图(meizitu.com)
  18. Runaway Robot游戏通关算法实现过程总结
  19. 【枚举的定义;枚举变量的定义、初始化和赋值】(学习笔记16--枚举)
  20. 耳机插头3.5与2.5三段与四段i版与n版等详解

热门文章

  1. 信息安全之——爆破密码
  2. 苹果人脸识别再低一点_当隐私频频泄露你们还能信任用人脸识别技术吗?
  3. Win8对比Win7 绝不止升级这么简单!(1)
  4. 网络搜索与信息收集路路通
  5. Insert语句处理字段是数据库关键字的问题
  6. ORA-12518 解决办法
  7. vue2 通过 过滤器来将后端返回金额转成大写
  8. 解决nginx文件服务器访问403
  9. nginx服务器网站文件存放处,Nginx服务器安装部署
  10. 2017第49周一马云乌镇演讲