初步尝试 tauri,并且与 electron.js 对比

sxkk20082年前知识分享284

什么是 Tauri?

Tauri 是一个为所有主流桌面平台构建小型、快速二进制文件的框架。开发人员可以集成任何编译成 HTML、 JS 和 CSS 的前端框架来构建他们的用户界面。应用程序的后端是一个 Rust 二进制文件,具有前端可以与之交互的 API。

image.png

在 2021 年 star 排行榜单中,tauri 一年增长了 18k 排名第五,我们就很好奇,Tauri 有什么优势呢?

然后我分别用 tauri 和 Electron.JS 打包测试一个 hello world 程序,一起来看下它们的大小。

大小对比

  • Electron.JS 62.5mb
  • Tauri 4.32mb

Tauri 构建的桌面程序太小了,远不是 Electron.JS 可以相比的,因为它放弃了体积巨大的  Chromium 内核   和  nodejs,前端使用操作系统的  webview,后端集成了  Rust。 Tauri 提供了初始化程序的模板,比如原生 js, react, svelte.js, vue.js 等等。

image.png

MOBILE when? 这条 issues 看, Tauri 团队也正在努力支持 Android and IOS.这是不是有点小期待呢?

开始尝试 Tauri

因为 Tauri 是一个多语言的工具链,涉及安装有点复杂。

我这边是 macos 系统

1、 首先要安装 gcc 编译器

$ brew install gcc

homebrew 可以先切换清华大学的源, 需要先安装 homebrew, 下面命令是 homebrew 的国内安装地址

安装 homebrew

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

2、 确保已经安装 xcode

xcode-select --install

3、安装 Nodejs 运行环境 和包管理工具 yarn

这一步前端都已经装了

4、安装是 Rust 编程语言的编译器 rustc

$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

image.png

然后就可以使用官方 cli 初始化程序了。

yarn create tauri-app

image.png

然后要在项目目录下初始化

yarn tauri init

image.png

这一步骤很慢,我不清楚是否是我没指定 rust 国内源,知道的小伙伴可以在评论区留言。 完成之后执 yarn start 就跟开发 react 程序一样,就可以实时热更新了。

image.png

第一次运行这个命令时,Rust 包管理器需要几分钟时间下载并构建所有需要的包,后续的构建会快得多,因为它们是有缓存的。

客户端开发启动命令

yarn tauri dev

右键也可以审查元素

image.png

打包客户端

yarn tauri build

image.png

与 Electron 对比

我们可以通过官方 github Readme 查看与 electron 对比

Comparison between Tauri and Electron

详细TauriElectron
安装包大小 Linux3.1 MB52.1 MB
内存消耗 Linux180 MB462 MB
启动时间 Linux0.39s0.80s
界面服务提供WRYChromium
后端绑定RustNode.js (ECMAScript)
潜在引擎RustV8 (C/C++)
FLOSSYesNo
多线程YesYes
字节码交付YesNo
多多窗口YesYes
自动更新YesYes1
自定义 App IconYesYes
Windows BinaryYesYes
MacOS BinaryYesYes
Linux BinaryYesYes
iOS BinarySoonNo
Android BinarySoonNo
Desktop TrayYesYes
Sidecar BinariesYesNo

小结

这次尝试,只是从 web 层,并没有涉及系统 后端,需要学一些 rust 相关的知识。若单纯 web 程序打包,使用 tauri 会更小,若熟悉 node.js api 的还是推荐 electron.js ,毕竟 vscode 这么大的程序也是 electron.js 构建的。

以上就是本文全部内容,希望这篇文章对大家有所帮助,也可以参考我往期的文章或者在评论区交流你的想法和心得,欢迎一起探索前端。

相关文章

人工智能:探索未来智能化世界的契机

人工智能:探索未来智能化世界的契机

  近年来,人工智能的发展取得了巨大进展,成为推动社会进步的重要力量之一。从机器学习到深度学习,从语音识别到图像识别,人工智能正在逐渐融入生产、服务、交通、医疗等各个领域。在...

AI绘画:开启艺术与科技的新篇章

AI绘画:开启艺术与科技的新篇章

  近年来,随着人工智能技术的快速发展,越来越多的领域开始探索AI的应用。作为一门艺术,绘画也在逐渐被AI所渗透。AI绘画技术已经开始广泛应用在各种领域,如游戏、影视、虚拟现...

人工智能培训:揭秘未来科技的智慧之路

人工智能培训:揭秘未来科技的智慧之路

  随着科技的飞速发展,人工智能已经成为改变世界的关键驱动力之一。无论是在工业生产、医疗保健、金融服务还是交通领域,人工智能的应用都取得了巨大的突破。为了满足这一需求,越来越...

AI 人工智能绘画:探索智能创新的世界

AI 人工智能绘画:探索智能创新的世界

  近年来,越来越多的领域开始迎来了AI的应用,人工智能绘画便是其中之一。AI技术不仅可以帮助艺术家创作,打破传统绘画的局限性,同时也可以为人们提供更加智能化的艺术品欣赏方式...

油库智能化-AI技术助力数字化转型

油库智能化-AI技术助力数字化转型

  随着数字化转型的推进,越来越多企业开始尝试引入AI技术,优化工作流程、提高效率。油库这一行业同样不例外。当前,油库智能化正处于蓬勃发展的阶段,AI技术也逐渐成为推动油库数...

为什么要写这个脚本

最近开了个前端公众号,需要推送一些优质的文章,但由于时间的关系,原创内容太少,常规的做法是转载一些优秀的文章到自己的公众号。

流程

image.png

[油猴脚本]文章拷贝助手,文章一键拷贝到微信公众平台

文章拷贝助手,文章一键拷贝到微信公众平台、知乎 下载 markdown为什么要写这个脚本最近开了个前端公众号,需要推送一些优质的文章,但由于时间的关系,原创内容太少,常规的做法是转载一些优秀的文章到自...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。