# Rolegram 一个基于 Vue 3 和 Tauri 2 构建的现代化桌面应用程序。 ## 📖 项目简介 Rolegram 是一个跨平台桌面应用,结合了现代 Web 技术与原生桌面能力,提供流畅的用户体验和强大的本地功能。 ## ✨ 主要特性 - 🚀 **现代化技术栈**: Vue 3.5 + TypeScript + Vite 8 - 💻 **跨平台支持**: 基于 Tauri 2,支持 Windows、macOS 和 Linux - 🎨 **美观界面**: TailwindCSS 4 + DaisyUI 5 打造的用户界面 - 🔔 **通知系统**: 集成 Tauri 通知插件 - 💾 **本地数据库**: SQLite 支持,数据本地存储 - 🔌 **插件系统**: 可扩展的插件架构(文件插件、文本插件等) - 🤖 **自动化工作流**: 支持自动化规则和定时任务 - 💬 **聊天功能**: 内置聊天窗口和消息管理 - 🌐 **P2P 通信**: 基于 Iroh 的去中心化通信能力 ## 🛠️ 技术栈 ### 前端 - **框架**: Vue 3.5.13 - **路由**: Vue Router 5.0.3 - **构建工具**: Vite 8.0.0 - **语言**: TypeScript 5.6.2 - **样式**: TailwindCSS 4.2.1 + DaisyUI 5.5.19 - **图标**: Lucide Icons (@lucide/vue) - **测试**: Vitest 4.1.0 ### 后端 (Rust) - **框架**: Tauri 2.x - **数据库**: SQLite (tauri-plugin-sql) - **P2P 网络**: Iroh 0.97 - **异步运行时**: Tokio - **序列化**: Serde ### 开发工具 - **包管理器**: pnpm - **Node.js 版本**: v24.15.0 (通过 fnm 管理) ## 📦 安装与运行 ### 前置要求 - Node.js >= 24.x (推荐使用 fnm 管理版本) - Rust >= 1.70 - pnpm >= 8.x ### 安装依赖 ```bash pnpm install ``` ### 开发模式 启动前端开发服务器和 Tauri 应用: ```bash pnpm tdev # 或 pnpm run tauri dev ``` 仅启动前端开发服务器: ```bash pnpm dev ``` ### 构建生产版本 ```bash pnpm build ``` 构建 Tauri 应用: ```bash pnpm tauri build ``` ### 预览生产构建 ```bash pnpm preview ``` ## 📁 项目结构 ``` rolegram/ ├── src/ # 前端源代码 │ ├── api/ # API 接口定义 │ ├── assets/ # 静态资源 │ ├── components/ # Vue 组件 │ │ ├── automation/ # 自动化相关组件 │ │ ├── chat/ # 聊天相关组件 │ │ └── home/ # 主页相关组件 │ ├── composables/ # Vue 组合式函数 │ ├── pages/ # 页面组件 │ │ ├── home/ # 主页子页面 │ │ ├── home.vue # 主页面 │ │ └── login.vue # 登录页面 │ ├── types/ # TypeScript 类型定义 │ ├── utils/ # 工具函数 │ ├── App.vue # 根组件 │ └── main.ts # 入口文件 ├── src-tauri/ # Tauri/Rust 后端 │ ├── src/ │ │ ├── db/ # 数据库模块 │ │ ├── handlers/ # Tauri 命令处理器 │ │ ├── iroh/ # P2P 网络模块 │ │ ├── plugins/ # 插件系统 │ │ └── router/ # 消息路由 │ ├── capabilities/ # Tauri 权限配置 │ ├── icons/ # 应用图标 │ └── Cargo.toml # Rust 依赖配置 ├── public/ # 公共资源 ├── .node-version # Node.js 版本配置 ├── package.json # 项目依赖配置 ├── vite.config.ts # Vite 配置 └── tsconfig.json # TypeScript 配置 ``` ## 🔧 配置说明 ### 环境变量 - `TAURI_DEV_HOST`: Tauri 开发主机地址(可选) ### 端口配置 - Vite 开发服务器: `1420` - HMR WebSocket: `1421` ### 路径别名 - `@/*` → `./src/*` ## 🧪 测试 运行单元测试: ```bash pnpm vitest ``` 运行测试并生成覆盖率报告: ```bash pnpm vitest --coverage ``` ## 📝 开发指南 ### 添加新功能 1. 在前端创建新的 Vue 组件和页面 2. 如需原生功能,在 `src-tauri/src` 中添加 Rust 代码 3. 在 `src-tauri/capabilities/default.json` 中配置所需权限 4. 使用 Tauri API 在前端调用后端功能 ### 数据库迁移 数据库迁移文件位于 `src-tauri/src/db/migrations.rs`,使用 SQLx 管理数据库 schema。 ### 插件开发 插件系统位于 `src-tauri/src/plugins/`,可以创建自定义插件来扩展应用功能。 ## 🤝 贡献指南 欢迎提交 Issue 和 Pull Request! 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件 ## 👥 作者 - **you** - 初始开发 ## 🙏 致谢 - [Tauri](https://tauri.app/) - 优秀的跨平台桌面应用框架 - [Vue.js](https://vuejs.org/) - 渐进式 JavaScript 框架 - [Iroh](https://iroh.computer/) - 去中心化 P2P 网络库 --- **注意**: 本项目正在积极开发中,API 和功能可能会有变化。