Rust 开发 tauri 桌面项目

Rust做tauri桌面开发

1 环境准备

  • pnpm
  • rust(cargo)

1.1 pnpm 环境准备

pnpm 环境准备(配置国内镜像):

使用以下命令查看 pnpm 当前的下载依赖的镜像源地址:

shell 复制代码
# 使用以下命令查看 `pnpm` 当前的下载依赖的镜像源地址:
pnpm config get registry

如果你想查看所有的 pnpm 配置信息,包括镜像源地址,可以使用:

shell 复制代码
# 如果你想查看所有的 `pnpm` 配置信息,包括镜像源地址,可以使用:
pnpm config list

如果你需要修改 registry(例如切换到淘宝镜像),可以使用:

shell 复制代码
pnpm config set registry https://registry.npmmirror.com/

如果要恢复为默认的 npm 官方源:

shell 复制代码
pnpm config set registry https://registry.npmjs.org/

1.2 rust 环境准备

1.2.1 rust 环境国内源

修改 Cargo 配置文件

  • Windows:C:\Users\你的用户名\.cargo\config.toml
  • Linux/macOS:~/.cargo/config.toml

清华大学镜像

toml 复制代码
# 清华大学镜像
[source.crates-io]
replace-with = "tuna"

[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/crates.io-index"

中国科技大学镜像

toml 复制代码
# 中国科技大学镜像
[source.crates-io]
replace-with = "ustc"

[source.ustc]
registry = "https://mirrors.ustc.edu.cn/crates.io-index"
1.2.2 安装tauri-cli

rust 需要安装tauri-cli

shell 复制代码
# 安装 tauri-cli
cargo install tauri-cli --locked

# 安装后查看版本
cargo tauri --version

2 创建truri项目

sh 复制代码
# 创建tauri项目,例如这里的项目名称是 my-app
pnpm create tauri-app my-app --rc

pnpm create tauri-app 项目名 --rc 的过程中,你会看到

shell 复制代码
D:\data\code\tauri>pnpm create tauri-app my-app2 --rc 
? Identifier (com.my-app2.app) › # 默认回车

Choose which language to use for your frontend ›
  TypeScript / JavaScript  (pnpm, yarn, npm, deno, bun)
❯ Rust (cargo)  # 想要访问系统api选这个
  .NET 

? Choose your UI template ›
❯ Vanilla # html css js UI
  Yew
  Leptos 
  Sycamore 
  Dioxus
  

安装好后进入my-app/src-tauri文件夹

bash 复制代码
cd my-app/src-tauri

启动

shell 复制代码
# my-app/src-tauri 文件夹内
cargo tauri dev

编译

shell 复制代码
# my-app/src-tauri 文件夹内
cargo tauri build
Identifier 的作用:

在 Tauri 项目创建过程中,Identifier 是一个用于唯一标识你的应用的字符串。它通常以反向域名格式表示,例如 com.my-app2.app

  • 唯一标识:这个标识符帮助操作系统区分不同的应用程序,尤其是在生成安装包时。它相当于应用的 "ID"。
  • 用于签名和证书:在发布应用到操作系统商店(如 macOS App Store 或 Windows Store)时,Identifier 会用作应用的唯一标识符,可能会出现在证书和签名中
language to use for your frontend(选择前端语言)

这三个选项的区别如下:

  1. TypeScript / JavaScript: 使用前端流行的语言(TypeScript 或 JavaScript)来编写前端部分,支持多种包管理工具(如 pnpm、yarn、npm)。适合熟悉前端开发者,通常结合框架如 Vue、React 等进行开发。
  2. Rust (cargo) : 使用 Rust 语言来开发 Tauri 项目的前端逻辑。适合需要更高性能和更深入系统集成的应用,且完全使用 Rust 进行开发。
  3. .NET: 使用 .NET 技术栈来开发前端,适合已经在 .NET 环境下开发的开发者,能够利用 C# 等技术栈。
shell 复制代码
# 运行
cd my-app/src-tarui
# 启动
cargo tauri dev
# 编译
Choose your UI template (Tauri 的 UI 模板)
  • Vanilla:纯 HTML + CSS + JS/TS,不依赖任何框架,适合轻量级项目。
  • Yew:Rust 语言的 Web 框架,基于 WebAssembly,类似 React。
  • Leptos:Rust Web 框架,运行时更轻量,适用于高性能应用。
  • Sycamore:Rust 框架,受 SolidJS 启发,使用信号系统优化 UI。
  • Dioxus:Rust UI 框架,可用于 Web、桌面、移动端,类似 React,组件化设计。

前端用 JS/TS** → 选 Vanilla

想用 Rust 开发前端** → 选 Yew(成熟)/Leptos(更轻量)/Sycamore(高性能)/Dioxus(跨平台)

如果选项要桌面程序,使用写vue的方式写UI代码,可以访问系统api,选Rust->Vanilla

安装 Vue 3 + Vite:

shell 复制代码
pnpm install vue@next

index.html 里引入 Vue,或使用 Vite 搭建 Vue 项目:

shell 复制代码
pnpm create vite my-app --template vue

你的 Vue 前端可以通过 @tauri-apps/api 访问系统 API,例如:

ts 复制代码
import { invoke } from '@tauri-apps/api/tauri';

async function getOsInfo() {
    const os = await invoke('get_os_info');
    console.log(os);
}

这样,你可以用 Vue 进行 UI 开发,同时用 Rust 访问系统 API,性能更强大!

相关推荐
Linux编程用C6 小时前
rust编程学习(二):复合数据类型
开发语言·学习·rust
ZC·Shou7 小时前
Rust 之五 所有权、.. 和 _ 语法、引用和切片、Vec<T>、HashMap<K, V>
rust·集合·向量·引用·切片·所有权
YiSLWLL9 小时前
Tauri 2.3.1+Leptos 0.7.8开发桌面应用--Sqlite数据库的写入、展示和选择删除
数据库·vscode·rust·sqlite·sqlx
pumpkin8451411 小时前
学习笔记十三—— 理解 Rust 闭包:从语法到 impl Fn vs Box<dyn Fn>
笔记·学习·rust
一只小松许️13 小时前
Rust泛型与特性
java·开发语言·rust
int821 小时前
error: failed to run custom build command for `yeslogic-fontconfig-sys v6.0.0`
rust
pumpkin845141 天前
学习笔记十二——Rust 高阶函数彻底入门(超详细过程解析 + 每步数值追踪)
笔记·学习·rust
柑木1 天前
Rust-开发应用-enum转String常见解法
rust
维维酱1 天前
Rust drop 函数
rust
Code blocks1 天前
Rust-引用借用规则
开发语言·后端·rust