# todo-list-rust **Repository Path**: bopha/todo-list-rust ## Basic Information - **Project Name**: todo-list-rust - **Description**: 基于rust开发的待办软件 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-16 - **Last Updated**: 2026-06-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 备忘录待办 memo-todo `memo-todo` 是一个本地优先的桌面备忘录/待办应用,基于 **Rust + egui/eframe + SQLite** 构建,适合用于管理当天任务、标签分组、月度完成情况和本地待办数据。 ## 项目功能 ### 今日待办 - 查看今日未完成任务。 - 查看今日已完成任务。 - 新建任务。 - 编辑任务标题、描述、日期和标签。 - 完成任务与取消完成。 - 删除任务,删除采用软删除方式,不直接物理移除数据。 ### 标签管理 - 创建、编辑、删除标签。 - 任务支持绑定单个标签。 - 今日待办可按标签分组展示。 - 默认初始化四个常用标签: - 重要且紧急 - 重要不紧急 - 不重要但紧急 - 不重要不紧急 ### 月总览 - 按月份查看每天已完成任务数量。 - 点击具体日期查看当天完成清单。 - 月总览使用更宽的窗口布局,便于展示日历和任务列表。 ### 自动延期 - 应用启动或刷新数据时会触发过期任务检查。 - 所有 `active` 状态且 `due_date < today` 的任务会自动延期到今天。 ### 导入导出 - 支持 Markdown 格式导入导出。 ### 设置页 - 自动延期相关设置。 - 主题设置:`system`、`light`、`dark`。 - 开机自启设置。 - 查看本地数据库路径。 ## 技术栈 - **Rust 2021 edition**:主要开发语言。 - **egui / eframe 0.30**:原生 GUI 框架。 - **SQLite**:本地数据库。 - **rusqlite**:Rust SQLite 访问库,启用 `bundled` 特性。 - **serde / serde_json**:数据序列化。 - **chrono**:日期时间处理。 - **uuid**:ID 生成。 - **rfd**:原生文件对话框。 - **auto-launch**:开机自启功能。 ## 目录结构 ```text memo-todo/ ├── Cargo.toml # Rust 依赖与包配置 ├── Cargo.lock # Rust 锁文件 ├── migrations/ │ └── 001_init.sql # SQLite 初始化 schema └── src/ ├── main.rs # 程序入口 ├── app.rs # 主控:应用状态与 eframe App 实现 ├── config.rs # 应用配置管理 ├── date.rs # 日期工具函数 ├── db.rs # SQLite 初始化、查询和业务规则 ├── error.rs # 错误类型定义 ├── import_export.rs # Markdown 导入导出 ├── models.rs # 数据结构定义 ├── theme.rs # UI 主题/颜色 ├── platform/ │ ├── mod.rs │ └── autostart.rs # 开机自启 ├── views/ │ ├── mod.rs │ ├── today.rs # 今日视图 │ ├── month.rs # 月总览视图 │ ├── tags.rs # 标签管理视图 │ └── settings.rs # 设置视图 └── widgets/ ├── mod.rs ├── month_calendar.rs # 月历组件 ├── tag_group.rs # 标签分组组件 ├── task_editor.rs # 任务编辑弹窗 └── task_item.rs # 任务项组件 ``` ## 开发环境 - **Rust stable** 与 Cargo - **Windows 10/11**(推荐 Windows 11) - Visual Studio Build Tools C++ 工具链 + Windows SDK ### 环境检查 ```bash rustc -V cargo -V ``` ## 安装依赖 ```bash cargo build ``` ## 本地开发 ```bash cargo run ``` ## 构建 ```bash cargo build --release ``` ## 构建脚本 项目提供了构建脚本,方便运行各种检查和打包: ### PowerShell (推荐) ```powershell # 运行所有检查和构建 .\build.ps1 -All # 单独运行 .\build.ps1 -Check # 编译检查 .\build.ps1 -Test # 运行测试 .\build.ps1 -Fmt # 检查代码格式 .\build.ps1 -FmtFix # 修复代码格式 .\build.ps1 -Lint # clippy lint 检查 .\build.ps1 -Build # 构建发布版本 .\build.ps1 -Run # 运行应用 .\build.ps1 -Package # 使用 NSIS 打包安装程序 .\build.ps1 -Clean # 清理构建产物 ``` ### 批处理文件 ```batch build.bat all REM 运行所有检查和构建 build.bat check REM 编译检查 build.bat test REM 运行测试 build.bat fmt REM 检查代码格式 build.bat fmtfix REM 修复代码格式 build.bat lint REM clippy lint 检查 build.bat build REM 构建发布版本 build.bat run REM 运行应用 build.bat package REM 使用 NSIS 打包安装程序 build.bat clean REM 清理构建产物 ``` ## 数据库说明 - 数据库文件名:`memo-todo.sqlite3` - 数据库创建位置:系统应用数据目录 - 初始化 schema:`migrations/001_init.sql` - 数据访问与业务规则:`src/db.rs` 主要表: - `tasks`:任务主表。 - `tags`:标签表。 - `task_tags`:任务与标签关系表;当前每个任务最多绑定一个标签。 - `postponements`:延期记录表。 - `settings`:设置表。 运行时数据库、SQLite WAL/SHM 文件不应提交到 Git。数据库结构应通过迁移 SQL 文件提交。