Tauri 是什么
Tauri 是一个跨平台 GUI
框架,与 Electron
的思想基本类似。Tauri 的前端实现也是基于 Web 系列语言,Tauri 的后端使用 Rust
。Tauri 可以创建体积更小、运行更快、更加安全的跨平台桌面应用。
为什么选择 Rust?
Rust
是一门赋予每个人构建可靠且高效软件能力的语言。它在高性能、可靠性、生产力方面表现尤为出色。Rust 速度惊人且内存利用率极高,由于没有运行时和垃圾回收,它能够胜任对性能要求特别高的服务,可以在嵌入式设备上运行,还能轻松和其他语言集成。Rust 丰富的类型系统和所有权模型保证了内存安全和线程安全,让您在编译期就能够消除各种各样的错误。Rust 也拥有出色的文档、友好的编译器和清晰的错误提示信息,还集成了一流的工具——包管理器和构建工具……
基于此,让 Rust 成为不二之选,开发人员可以很容易的使用 Rust 扩展 Tauri 默认的 Api
以实现定制化功能。
Tauri VS Electron
Detail | Tauri | Electron |
---|---|---|
Installer Size Linux | 3.1 MB | 52.1 MB |
Memory Consumption Linux | 180 MB | 462 MB |
Launch Time Linux | 0.39s | 0.80s |
Interface Service Provider | WRY | Chromium |
Backend Binding | Rust | Node.js (ECMAScript) |
Underlying Engine | Rust | V8 (C/C ) |
FLOSS | Yes | No |
Multithreading | Yes | Yes |
Bytecode Delivery | Yes | No |
Multiple Windows | Yes | Yes |
Auto Updater | Yes | Yes |
Custom App Icon | Yes | Yes |
Windows Binary | Yes | Yes |
MacOS Binary | Yes | Yes |
Linux Binary | Yes | Yes |
iOS Binary | Soon | No |
Android Binary | Soon | No |
Desktop Tray | Yes | Yes |
Sidecar Binaries | Yes | No |
环境安装
macOS
由于安装过程比较简单,作者使用的是 macOS,本文只介绍 macOS 安装步骤, Windows 安装步骤可自行查看官网。
1. 确保 Xcode 已经安装
代码语言:javascript复制$ xcode-select --install
复制代码
2. Node.js
建议使用 nvm
进行 node 版本管理:
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
复制代码
代码语言:javascript复制$ 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 项目
代码语言:javascript复制$ yarn create tauri-app
复制代码
按一下回车键,继续……
可以看出,目前主流的 Web 框架 Tauri 都支持, 我们选择 create-vite
……
此处选择 Y
,将 @tauri-apps/api
安装进来, 然后选择 vue-ts
……
检查 Tauri 相关的设置,确保一切就绪……
代码语言:javascript复制$ yarn tauri info
复制代码
代码语言:javascript复制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 也支持基于已存在的前端项目进行集成,具体流程可查看官网,本文不做介绍。