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,性能更强大!

相关推荐
love530love1 小时前
Windows 下部署 SUNA 项目:虚拟环境尝试与最终方案
前端·人工智能·windows·后端·docker·rust·开源
维维酱6 小时前
Rust - move 关键字
rust
UestcXiye6 小时前
Rust 学习笔记:使用自定义命令扩展 Cargo
rust
维维酱7 小时前
Rust - 线程
rust
唯有选择9 小时前
是时候用ED25519替代RSA了:Rust库`crypto_box`实践
安全·rust
UestcXiye9 小时前
Rust 学习笔记:Cargo 工作区
rust
UestcXiye13 小时前
Rust 学习笔记:使用 cargo install 安装二进制 crate
rust
寻月隐君13 小时前
解锁Rust代码组织:轻松掌握Package、Crate与Module
后端·rust·github
维维酱13 小时前
Rust - 引用循环
rust
维维酱1 天前
Rust - 结合 Rc<T> 、RefCell<T>
rust