# rs-tauri-demo **Repository Path**: futurelei/rs-tauri-demo ## Basic Information - **Project Name**: rs-tauri-demo - **Description**: rust语言编写的tauri教程 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-07 - **Last Updated**: 2026-06-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Tauri 2.x 教程系列 — 从入门到工程实战 > 🚀 本系列从零开始,逐步深入,带你掌握 Tauri 2.x 桌面应用开发的完整知识体系。 ## 📋 课程总览 | # | 课程 | 核心内容 | 状态 | |---|------|---------|------| | 01 | [Hello Tauri](./01-hello-tauri/) | 最小示例、项目结构、第一个 Tauri 命令 | ✅ | | 02 | [React Fundamentals](./02-react-fundamentals/) | 组件化、IPC 通信、类型安全、错误处理 | ✅ | | 03 | [State Management](./03-state-management/) | Tauri State、Zustand、事件系统 | ✅ | | 04 | [SQLite Database](./04-sqlite-database/) | rusqlite、CRUD、数据持久化 | ✅ | | 05 | [Routing & Navigation](./05-routing-navigation/) | React Router、多页面架构、路由参数 | ✅ | | 06 | [Testing](./06-testing/) | 测试金字塔、TDD、Rust/前端/E2E 测试 | ✅ | | 07 | [Project Engineering](./07-project-engineering/) | 分层架构、错误处理、日志、CI/CD | ✅ | | 08 | [Capstone Project](./08-capstone-todo-app/) | 综合项目实战(待办应用) | ✅ | ## 📚 学习路径 ``` 初学者入门路线: 01 → 02 → 03 → 04 → 05 → 06 → 07 → 08 有经验者跳转: 01 → 04 → 06 → 07 (跳过基础,直达数据库、测试和工程化) ``` ## 🛠 技术栈 | 技术 | 用途 | |------|------| | [Tauri 2.x](https://v2.tauri.app) | 桌面应用框架 | | [React 18](https://react.dev) | 前端 UI 框架 | | [TypeScript](https://www.typescriptlang.org) | 前端语言 | | [Rust](https://www.rust-lang.org) | 后端语言 | | [Vite](https://vitejs.dev) | 前端构建工具 | | [Zustand](https://github.com/pmndrs/zustand) | 前端状态管理 | | [React Router v6](https://reactrouter.com) | 前端路由 | | [SQLite (rusqlite)](https://github.com/rusqlite/rusqlite) | 本地数据库 | | [Vitest](https://vitest.dev) | 前端测试框架 | | [React Testing Library](https://testing-library.com/react) | 组件测试 | | [Playwright](https://playwright.dev) | E2E 测试 | | [tracing](https://docs.rs/tracing) | Rust 日志 | | [thiserror](https://docs.rs/thiserror) | 错误处理 | ## 💡 开发原则 ### TDD (Test-Driven Development) 每个课程遵循 Red → Green → Refactor 流程: 1. **Red**: 先写失败测试,定义期望行为 2. **Green**: 实现最少代码通过测试 3. **Refactor**: 优化代码质量 4. **Commit**: 提交并通过 CI ### 渐进式复杂度 ``` Lesson 01: 20 行代码,1 个命令 Lesson 02: 200 行代码,4 个命令 + 组件 Lesson 03: 300 行代码 + Zustand store Lesson 04: 400 行代码 + SQLite Lesson 05: 800 行代码 + 路由 + 5 个页面 Lesson 06: 1000 行代码 + 20+ 测试 Lesson 07: 分层架构 + CI/CD Lesson 08: 1500+ 行代码,生产级应用 ``` ## 🌐 环境要求 ```bash # Tauri 2.x 系统依赖 (Ubuntu) sudo apt-get install -y \ libwebkit2gtk-4.1-dev libsoup-3.0-dev \ libjavascriptcoregtk-4.1-dev build-essential \ libayatana-appindicator3-dev librsvg2-dev # Tauri CLI cargo install tauri-cli --version "^2" # 每个课程独立运行 cd 01-hello-tauri npm install npm run tauri dev ``` ## 🏗 Cargo Workspace(共享编译缓存) 所有 8 个项目共享同一个 `target/` 目录,避免重复编译(节省 **~90% 磁盘空间**): ```bash # 从根目录操作,所有项目共享 target/ cargo check --workspace # 检查所有项目编译 cargo build -p hello-tauri # 构建单个项目 cargo test -p testing-demo # 测试单个项目 # 从子目录操作也行(继承 workspace 配置) cd 01-hello-tauri/src-tauri cargo test # 同样使用根目录 target/ ``` 对应的 package 名:`hello-tauri`、`react-fundamentals`、`state-management`、`sqlite-database`、`routing-navigation`、`testing-demo`、`project-engineering`、`capstone-todo-app`。 ## 🧪 测试命令速查 ```bash # 某个课程的测试(从根目录) cargo test -p hello-tauri # Rust 测试 cd 01-hello-tauri && npx vitest run # 前端测试 # 全部测试 for d in 0*/; do echo "=== $d ===" cd "$d" && npm install && cd .. cd "$d/src-tauri" && cargo test && cd ../.. echo "" done ``` ## 📦 项目结构 ``` rs-tauri-demo/ ├── Cargo.toml # Cargo Workspace(共享 target/) ├── 01-hello-tauri/ # 最小示例 ├── 02-react-fundamentals/ # React 组件化 ├── 03-state-management/ # 状态管理 ├── 04-sqlite-database/ # SQLite 数据库 ├── 05-routing-navigation/ # 路由导航 ├── 06-testing/ # 测试体系 ├── 07-project-engineering/ # 工程化 ├── 08-capstone-todo-app/ # 综合项目 └── README.md # ← 当前文件 ``` ## 📖 课程特性 - ✅ **独立可运行**: 每个课程是独立 Tauri 项目 - ✅ **递进式学习**: 后一课建立在前一课基础上 - ✅ **TDD 实践**: 全程测试驱动开发 - ✅ **Cargo Workspace**: 所有项目共享编译缓存(节省 ~90% 磁盘) - ✅ **中英文双语**: 代码注释中文,README 中文 - ✅ **完整测试**: Rust 单元测试 + 前端测试 + E2E --- > 💡 **提示**: 每个课程文件夹中都有详细的 README 文档和可运行的代码。 > 建议按顺序学习,但有经验的开发者可以直接跳到感兴趣的章节。