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

相关推荐
明天好,会的2 小时前
跨平台ZeroMQ:在Rust中使用zmq库的完整指南
开发语言·后端·rust
寻月隐君6 小时前
Rust 网络编程实战:用 Tokio 手写一个迷你 TCP 反向代理 (minginx)
后端·rust·github
芳草萋萋鹦鹉洲哦13 小时前
【vue3+tauri+rust】如何实现下载文件mac+windows
windows·macos·rust
寻月隐君21 小时前
Rust 异步编程实践:从 Tokio 基础到阻塞任务处理模式
后端·rust·github
萧曵 丶1 天前
Rust 中的返回类型
开发语言·后端·rust
浪裡遊1 天前
Sass详解:功能特性、常用方法与最佳实践
开发语言·前端·javascript·css·vue.js·rust·sass
受之以蒙1 天前
Rust & WASM 之 wasm-bindgen 基础:让 Rust 与 JavaScript 无缝对话
前端·笔记·rust
Elixin1 天前
第一章:环境搭建
rust
Pomelo_刘金2 天前
Rust 宣布发布1.88.0
rust
寻月隐君2 天前
告别 Vec!掌握 Rust bytes 库,解锁零拷贝的真正威力
后端·rust·github