Skip to content

NAMEWTA/tauri-rust

Repository files navigation

Tauri Rust Desktop Base

这是一个面向二次开发的 Tauri 2 基座项目,目标是把 main 维护成可反复复用的桌面端模板主干,再从 main 拉出定制分支做业务迭代。

基座定位

  • 前端: React 19 + TypeScript + Vite + Ant Design 6
  • 桌面端: Tauri 2 + Rust
  • 数据层: SQLite + SQLx migration
  • 工程化: ESLint、Prettier、Husky、lint-staged、Commitlint
  • 交付形态: Windows x64 与 macOS arm64 桌面安装包
  • 视觉基线: 中性科技青蓝 Glassmorphism,默认提供中英文切换

快速开始

pnpm install
pnpm typecheck
pnpm lint
pnpm build
cargo test --manifest-path src-tauri/Cargo.toml
pnpm tauri build

文档导航

推荐开发方式

  1. main 只维护通用能力,不放客户专属逻辑与命名。
  2. 新项目或定制需求从 main 拉出业务分支。
  3. 通用模块回灌到 main 后,再按需合并到各定制分支。

当前结论

  • 该仓库已经具备可运行、可构建、可打包的 Tauri 2 样例基座能力。
  • 2026-03-16 已完成一轮编译、测试、打包验证,补齐了 Rust 侧基础冒烟测试、前端双语切换能力与 GitHub Actions 质量门禁。
  • updater 仍保持占位配置,但自动更新入口默认禁用;正式接入自动更新前,需要先补齐真实签名与发布配置。
  • Windows 交互安装默认推荐使用 src-tauri/target/release/bundle/nsis/*-setup.exe,安装时可选择安装范围与安装目录;.msi 继续保留给企业或静默安装场景。

重构范围

  • 技术栈: Tauri 2 + Rust + React 19 + TypeScript + Ant Design 6
  • 数据持久化: Rust 服务层 + SQLx + SQLite migration
  • 桌面能力: 托盘、单实例、更新入口、原生目录与文件能力
  • 工程质量: ESLint、Prettier、Husky、lint-staged、Commitlint
  • 打包目标: Windows x64、macOS arm64

已完成重构

  1. 用路由化应用骨架替换默认示例页面。
  2. 建立 Rust command -> service -> repository -> dto/domain 分层。
  3. 引入 SQLite 初始化、迁移执行与统一应用数据目录管理。
  4. 增加 Todo CRUD 端到端样例,作为前后端联调参考。
  5. 增加托盘菜单与单实例唤起逻辑。
  6. 增加 updater 命令入口与配置占位。
  7. 增加 CI、发布工作流与多目标打包脚本。
  8. 增加 Rust 侧仓储冒烟测试,覆盖 Todo CRUD 核心流程。

2026-03-16 验证结果

  • pnpm typecheck: 通过
  • pnpm lint: 通过
  • pnpm build: 通过
  • cargo check --manifest-path src-tauri/Cargo.toml: 通过
  • cargo test --manifest-path src-tauri/Cargo.toml: 通过,2 个测试
  • pnpm tauri build: 通过

当前基座状态

  • 可作为 Tauri 2 定制项目的起始模板使用。
  • 默认打包链路可运行,不再强依赖 updater 私钥。
  • 默认提供中英文切换入口,现有页面文案已接入基础 i18n。
  • 登录页、主框架、仪表盘、设置页与 404 已统一升级为 Glassmorphism 视觉基线,可继续作为主干主题壳复用。
  • updater 仍是占位配置,正式发布前必须替换真实 endpoint、公钥和私钥,并显式开启更新入口。

仍需继续完善

  1. 扩大 i18n 覆盖面,继续清理后续新增页面与组件中的硬编码债务。
  2. 增加前端自动化测试,避免只依赖构建通过。
  3. 为 updater 增加正式发布配置和签名流程。
  4. 根据模板使用场景,继续抽离业务示例页面中的演示文案与样例行为。

数据目录说明

  • 项目级配置文件: src-tauri/config/project.json
  • 模板默认 projectName: tauri-rust-desktop
  • 持久化项目根目录: ~/.namewta/<project-name>/
  • 当前模板默认数据目录: ~/.namewta/tauri-rust-desktop/state/
  • Windows 常见路径: %UserProfile%\\.namewta\\tauri-rust-desktop\\state\\
  • macOS / Linux 常见路径: ~/.namewta/tauri-rust-desktop/state/
  • 当前主干发布标签: v-tauri-rust-desktop-x.y.z
  • 发布标签中的项目名取自 src-tauri/config/project.jsonprojectName,不对应 Git 分支名
  • SQLite 文件: ~/.namewta/<project-name>/state/app.db
  • 前端持久化文件: ~/.namewta/<project-name>/state/app-store.json
  • 首次切换到新目录时,会尝试从旧的 Tauri app_data_dir/state/ 自动迁移 app.dbapp-store.json
  • 若本地曾使用过旧模板默认目录 ~/.namewta/main/state/,当前版本会在目标文件缺失时自动迁移
  • 修改 src-tauri/config/project.json 后,需要重启 pnpm dev:desktop 才会生效

About

tauri-rust

Resources

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors