扔掉 Electron,拥抱基于 Rust 开发的 Tauri

云原生牧民
• 阅读 801

Tauri 是什么
Tauri 是一个跨平台 GUI 框架,与 Electron 的思想基本类似。Tauri 的前端实现也是基于 Web 系列语言,Tauri 的后端使用 Rust。Tauri 可以创建体积更小、运行更快、更加安全的跨平台桌面应用。
为什么选择 Rust?
Rust 是一门赋予每个人构建可靠且高效软件能力的语言。它在高性能、可靠性、生产力方面表现尤为出色。Rust 速度惊人且内存利用率极高,由于没有运行时和垃圾回收,它能够胜任对性能要求特别高的服务,可以在嵌入式设备上运行,还能轻松和其他语言集成。Rust 丰富的类型系统和所有权模型保证了内存安全和线程安全,让您在编译期就能够消除各种各样的错误。Rust 也拥有出色的文档、友好的编译器和清晰的错误提示信息,还集成了一流的工具——包管理器和构建工具……
基于此,让 Rust 成为不二之选,开发人员可以很容易的使用 Rust 扩展 Tauri 默认的 Api 以实现定制化功能。
Tauri VS Electron

DetailTauriElectronInstaller Size Linux3.1 MB52.1 MBMemory Consumption Linux180 MB462 MBLaunch Time Linux0.39s0.80sInterface Service ProviderWRYChromiumBackend BindingRustNode.js (ECMAScript)Underlying EngineRustV8 (C/C++)FLOSSYesNoMultithreadingYesYesBytecode DeliveryYesNoMultiple WindowsYesYesAuto UpdaterYesYesCustom App IconYesYesWindows BinaryYesYesMacOS BinaryYesYesLinux BinaryYesYesiOS BinarySoonNoAndroid BinarySoonNoDesktop TrayYesYesSidecar BinariesYesNo
环境安装
macOS
由于安装过程比较简单,作者使用的是 macOS,本文只介绍 macOS 安装步骤, Windows 安装步骤可自行查看官网。

  1. 确保 Xcode 已经安装
    $ xcode-select --install
    复制代码
  2. Node.js
    建议使用 nvm 进行 node 版本管理:
    $ curl -o- https://raw.githubusercontent... | bash
    复制代码
    $ nvm install node --latest-npm
    $ nvm use node
    复制代码
    强烈推荐安装 Yarn,用来替代 npm。
    3.Rust 环境
    安装 rustup:
    $ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    复制代码
    验证 Rust 是否安装成功:
    $ rustc --version

rustc 1.58.1 (db9d1b20b 2022-01-20)
复制代码
tips:如果 rustc 命令执行失败,可以重启一下终端。
至此,Tauri 开发环境已安装完毕。
项目搭建
1.创建一个 Tauri 项目
$ yarn create tauri-app
复制代码
扔掉 Electron,拥抱基于 Rust 开发的 Tauri
按一下回车键,继续……
扔掉 Electron,拥抱基于 Rust 开发的 Tauri
可以看出,目前主流的 Web 框架 Tauri 都支持,
我们选择 create-vite……
扔掉 Electron,拥抱基于 Rust 开发的 Tauri
此处选择 Y,将 @tauri-apps/api 安装进来,
然后选择 vue-ts……
扔掉 Electron,拥抱基于 Rust 开发的 Tauri
检查 Tauri 相关的设置,确保一切就绪……
$ yarn tauri info
复制代码
yarn run v1.22.17
$ tauri info

Operating System - Mac OS, version 12.2.0 X64

Node.js environment
Node.js - 14.17.0
@tauri-apps/cli - 1.0.0-rc.2
@tauri-apps/api - 1.0.0-rc.0

Global packages
npm - 6.14.13
pnpm - Not installed
yarn - 1.22.17

Rust environment
rustc - 1.58.1
cargo - 1.58.0

Rust environment
rustup - 1.24.3
rustc - 1.58.1
cargo - 1.58.0
toolchain - stable-x86_64-apple-darwin

App directory structure
/dist
/node_modules
/public
/src-tauri
/.vscode
/src

App
tauri.rs - 1.0.0-rc.1
build-type - bundle
CSP - default-src 'self'
distDir - ../dist
devPath - http://localhost:3000/
framework - Vue.js
✨ Done in 20.72s.
复制代码
至此,一个新的 Tauri 项目已创建完成。
tips:Tauri 也支持基于已存在的前端项目进行集成,具体流程可查看官网,本文不做介绍。

点赞
收藏
评论区
推荐文章
徐小夕 徐小夕
4年前
从零使用electron搭建桌面端可视化编辑器
之前有朋友希望我基于H5Dooring开发一款桌面端应用,最近刚好有时间,就花了小半天时间从零使用electron开发了桌面端的离线软件Dooringelectron.因为之前用electron比较少,今天刚好学了一下,也基本把前后端打通了,文末我会放dooringelectron的github地址供大家参考学习.如果大家有更好的方案,可以随
菜鸟阿都 菜鸟阿都
4年前
electron:桌面应用程序的革命
“ 你也许不了解electron,但你应该了解或使用过atom、vscode、xminzend,没错他们所使用的开发技术就是electon,通过前端技术开发桌面应用程序,刚开始接触electron时,考虑最多的是性能问题,不过作为一个vscode、xminzen重度使用者的我来说,基本上对其性能的担心减少了很多,并且发现了基于vue框架构造electro
徐小夕 徐小夕
3年前
从零使用electron搭建桌面端可视化编辑器Dooring
之前有朋友希望我基于H5Dooring开发一款桌面端应用,最近刚好有时间,就花了小半天时间从零使用electron开发了桌面端的离线软件Dooringelectron.因为之前用electron比较少,今天刚好学了一下,也基本把前后端打通了,文末我会放dooringelectron的github地址供大家参考学习.如果大家有更好的方案,可以随
Stella981 Stella981
3年前
Electron开发跨平台桌面程序入门教程
最近一直在学习Electron开发桌面应用程序,在尝试了javaswing和FXjava后,感叹还是Electron开发桌面应用上手最快。我会在这一篇文章中实现一个HelloWord的应用程序,记录学习过程中的坑。Electron是什么呢?Electron可以让你使用纯JavaScript调用丰富的
Stella981 Stella981
3年前
Rust开发环境搭建
1.Rust概述按照百度百科的说法,Rust是一门系统编程语言,专注于安全,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。Rust在语法上和C类似,但是设计者想要在保证性能的同时提供更好的内存安全。Rust最初是由Mozilla研究院的GraydonHoare设计创造,然后在DaveHerman,Brend
Stella981 Stella981
3年前
Rust语言宏原理及开发教程
Rust语言最强大的一个特点就是可以创建和利用宏/Macro。不过创建Rust宏看起来挺复杂,常常令刚接触Rust的开发者心生畏惧。这片文章的目的就是帮助你理解RustMacro的基本运作原理,学习如何创建自己的Rust宏。相关链接:在线学编程(https://www.oschina.net/action/GoToLink?urlhttp%3
Wesley13 Wesley13
3年前
3 天新增 4700 Star !开源实时屏幕共享工具在 GitHub 火了
【导语】:Deskreen可以将任何具有Web浏览器的设备转换为电脑的辅助屏幕。简介Deskreen是一个基于electron.js的应用程序,使用WebRTC协议,将你的电脑桌面流实时传输到到任何设备上的Web浏览器。它构建在ElectronReactBoilerplate的顶层,并且为了获得更好的安全性,实现了
非凸科技 非凸科技
3年前
用Rust编写的Linux内核GPU驱动程序,或将到来
外媒Phoronix报道,AsahiLinix的核心开发者AsahiLina正在探索用Rust编程语言编写该DRM内核GPU驱动程序的可行性。如果成功了,这将是第一个用Rust语言编写的Linux内核GPU驱动程序。鉴于目前尚未有Rust编写的实际驱动程序代码,驱动程序的Rust实现有几种可能性:1.完全使用R
非凸科技 非凸科技
2年前
Rust的安全性和稳健型
Rust是围绕安全性和稳健性而设计的。也就是,安全代码是不使用unsafe关键字的代码,声音代码是不会导致内存损坏或其他未定义行为的代码。“未定义行为”(UB)在C、C和Rust等语言中具有特定含义,不同于“未指定”或“实现定义”行为。Rust最重要的
Rust中的数据抓取:代理和scraper的协同工作
一、数据抓取的基本概念数据抓取,又称网络爬虫或网页爬虫,是一种自动从互联网上提取信息的程序。这些信息可以是文本、图片、音频、视频等,用于数据分析、市场研究或内容聚合。为什么选择Rust进行数据抓取?●性能:Rust的编译速度和运行效率极高。●内存安全:Ru
云原生牧民
云原生牧民
Lv1
突然发现,能够不变,有时候就是一种最难得的幸福。
文章
3
粉丝
0
获赞
0