2026-07-21 17:41:45 +08:00
2026-07-14 18:27:23 +08:00
2026-07-20 18:28:34 +08:00
2026-07-21 17:40:55 +08:00
2026-07-18 17:46:21 +08:00
2026-07-14 18:27:23 +08:00
2026-07-20 18:28:34 +08:00
2026-07-14 18:27:23 +08:00
2026-07-14 18:27:23 +08:00
2026-07-20 18:28:34 +08:00
2026-07-20 18:28:34 +08:00
2026-07-20 18:28:34 +08:00
2026-07-21 17:41:45 +08:00
2026-07-14 18:27:23 +08:00
2026-07-14 18:27:23 +08:00
2026-07-14 18:27:23 +08:00

Thing

一个基于 Tauri 2 + Vue 3 的 Windows 工具集,集成多个实用功能模块。

技术栈

层次 技术 版本
框架 Tauri lastest(2.x)
前端 Vue latest(3.x)
前端构建 Vite latest(6.x)
状态管理 Pinia latest(2.x)
UI 组件 shadcn-vue latest(2.x)
语言 TypeScript 5.x
后端 Rust latest
包管理 Bun latest

项目结构

Thing/
├── public/                    # 静态资源
├── src/
│   ├── assets/                # 前端资源
│   ├── components/            # 通用组件
│   │   ├── layout/            # 布局组件
│   │   └── ui/                # shadcn-vue UI 组件
│   ├── composables/           # Vue 组合式函数
│   ├── lib/                   # 工具库(cn 等)
│   ├── modules/               # 功能模块
│   │   ├── proxy/             # 代理管理模块
│   │   ├── clipboard/         # 剪贴板增强模块
│   │   ├── screenshot/        # 截图模块
│   │   ├── monitor/           # 硬件监控模块
│   │   ├── downloader/        # 下载器模块
│   │   └── finder/            # 文件搜索模块
│   ├── stores/                # Pinia 状态管理
│   ├── types/                 # TypeScript 类型定义
│   ├── App.vue                # 主应用组件
│   ├── main.ts                # 入口文件
│   └── assets/main.css        # 全局样式
├── src-tauri/
│   ├── capabilities/          # Tauri 权限配置
│   ├── icons/                 # 应用图标
│   ├── src/
│   │   ├── commands/          # Rust 命令
│   │   │   ├── proxy.rs       # 代理相关命令
│   │   │   ├── clipboard.rs   # 剪贴板相关命令
│   │   │   ├── screenshot.rs  # 截图相关命令
│   │   │   ├── monitor.rs     # 监控相关命令
│   │   │   ├── downloader.rs  # 下载器相关命令
│   │   │   └── finder.rs      # 文件搜索相关命令
│   │   ├── modules/           # Rust 模块逻辑
│   │   ├── utils/             # Rust 工具函数
│   │   ├── main.rs            # Rust 入口
│   │   └── lib.rs             # Rust 库入口
│   ├── Cargo.toml             # Rust 依赖配置
│   └── tauri.conf.json        # Tauri 配置
├── package.json               # 前端依赖配置
├── tsconfig.json              # TypeScript 配置
└── vite.config.ts             # Vite 配置

开发进程规划

第一阶段:主体架构(当前阶段)

  • 项目初始化
  • 主界面布局(左侧模块导航 + 右侧内容区域)
  • 基础设置模块(主题切换、开机自启)
  • 系统托盘基础(Tray
  • 日志系统(Log
  • 进程管理架构(子进程生命周期管理)
  • 模块注册机制

第二阶段:核心模块开发

🌐 代理管理

  • 下载/内置 mihomo (Clash.Meta) 内核集成
  • 系统代理切换
  • 规则配置管理
  • 延迟测速
  • 订阅管理

📋 剪贴板增强

  • 剪贴板历史记录
  • 搜索功能
  • 固定常用条目
  • 多格式预览(文本、图片、文件)
  • SQLite 存储

📸 截图

  • 区域截图
  • 窗口截图
  • 全屏截图
  • 滚动截图
  • 图片编辑工具

📊 硬件监控

  • 任务栏快捷显示
  • CPU 使用率监控
  • GPU 使用率监控
  • 内存使用率监控
  • 硬盘温度及使用率
  • 传感器数据可视化
  • 网速监控

⬇️ 下载器

  • 下载/内置 aria2 内核集成
  • 接管浏览器下载,创建edge插件(Thing Extension)?
  • HTTP 下载支持
  • BT/磁力链接支持
  • 下载任务管理(历史)
  • 速度限制
  • 断点续传

🔍 文件 / 程序搜索

  • 快速搜索弹窗(快捷键触发)
  • 文件搜索(Everything SDK
  • 应用程序搜索
  • 拼音模糊匹配
  • 正则表达式支持

第三阶段:优化与完善

  • 性能优化
  • 错误处理与日志完善
  • 用户体验优化
  • 自动更新机制
  • 打包发布

模块管理架构

项目采用统一的模块注册机制,每个模块通过 index.ts 自描述其配置,由中央注册表统一管理:

核心文件

文件 职责
src/types/module.ts 模块配置类型定义(ModuleConfigModuleMetaModuleProcessConfig 等)
src/modules/registry.ts 模块注册表单例,提供注册、查询、组件懒加载等功能
src/modules/index.ts 模块聚合入口,导入并注册所有模块
src/modules/icons.ts 模块图标映射表
src/modules/<name>/index.ts 各模块的配置声明(名称、图标、组件、搜索项、进程配置等)

模块配置示例

// src/modules/proxy/index.ts
export const moduleConfig: ModuleConfig = {
  id: 'proxy',
  name: '代理管理',
  icon: 'proxy',
  description: '系统代理切换、订阅管理与延迟测速',
  category: 'network',
  loader: () => import('./ProxyModule.vue'),
  searchItems: [...],
  process: {
    name: 'mihomo',
    executable: '',
    autoStart: false,
    restartOnCrash: true,
    maxRestarts: 3
  },
  order: 10
}

进程管理架构

需要管理外部子进程的模块(如代理的 mihomo、下载器的 aria2)通过 ModuleProcessConfig 声明进程配置,由 Rust 端的 ProcessManager 统一管理生命周期:

  • Rust 端 (src-tauri/src/process_manager.rs):管理子进程的启动、停止、重启和崩溃检测
  • 前端 (src/stores/processStore.ts)Pinia store,通过 Tauri IPC 调用 Rust 命令,监听进程状态变更事件
  • 后台监控线程:每 3 秒检查进程状态,崩溃时自动重启(可配置),并通过 Tauri 事件通知前端
  • 应用退出清理:退出时自动停止所有子进程

新增模块流程

  1. 创建 src/modules/<name>/ 目录,编写 ModuleComponent.vueindex.ts
  2. index.ts 中导出 moduleConfig: ModuleConfig
  3. src/modules/index.ts 中添加导入
  4. src/modules/icons.ts 中添加图标映射
  5. 如需 Rust 命令,在 src-tauri/src/ 中创建对应模块

构建与运行

前置依赖

  • Node.js >= 18
  • Rust >= 1.75
  • Bun(推荐)或 npm/yarn
  • Windows SDK(用于 Tauri 构建)

开发模式

# 安装依赖
bun install

# 启动开发服务器
bun run tauri dev

生产构建

# 构建前端
bun run build

# 构建应用
bun run tauri build

开发规范

代码风格

  • TypeScript 代码遵循 ESLint 规则
  • Rust 代码遵循 cargo fmt 规范
  • 提交信息使用 Conventional Commits 格式

命名规范

  • 组件:PascalCase(如 ProxyManager.vue
  • 函数:camelCase(如 getSystemProxy()
  • 文件:kebab-case(如 proxy-manager.ts
  • 常量:UPPER_CASE(如 MAX_HISTORY_COUNT

分支策略

  • main:主分支,稳定版本
  • develop:开发分支,整合各模块开发
  • feature/*:功能分支,单个模块开发
  • bugfix/*:修复分支,bug 修复

许可证

MIT License

S
Description
Thing 基于 Tauri 2 的 Windows 工具集
Readme
114 MiB
Thing v26.9.3
Latest
2026-09-17 17:49:54 +08:00
Languages
Vue 39.5%
Rust 39.5%
TypeScript 16.3%
Python 1.7%
C# 1.4%
Other 1.5%