# Nitro **Repository Path**: everwin-app/nitro ## Basic Information - **Project Name**: Nitro - **Description**: 基于 rust + slint (rust GUI 库)开的的 terminal + sftp 现代化终端工具 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-21 - **Last Updated**: 2026-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Nitro 文档索引 本目录用于集中存放 `Nitro` 项目的产品、架构、UI、工程设计文档,便于后续: - 方案评审 - 架构设计 - UI/UX 对齐 - 开发排期 - 编码落地 - 测试与发布准备 当前文档可按以下几类查看。 --- ## 1. 产品与总体方案 ### `terminal-sftp-product-technical-proposal.md` 产品与技术总方案文档。 适合在项目初期用于统一以下内容: - 产品定位 - 目标用户 - MVP 范围 - 技术选型 - 总体架构方向 - 实施路径 建议阅读优先级:**最高** --- ## 2. 系统架构与时序 ### `system-architecture-diagram-explanation.md` 系统架构图说明版文档。 主要覆盖: - 分层架构 - 模块关系 - UI / ViewModel / Service 分工 - Session / Terminal / SSH / SFTP / Transfer 的位置关系 - 扩展性与平台适配思路 适合用于: - 架构评审 - 模块划分 - 开发前统一边界 ### `system-sequence-diagram-document.md` 系统时序图文档。 主要覆盖: - 应用启动 - 本地终端创建 - SSH 建连 - 指纹确认 - 终端输入输出 - SFTP 打开目录 - 上传下载 - 删除文件 - 关闭会话 - 异常断线 - 配置加载与凭据解析 适合用于: - 流程评审 - 异步链路设计 - 测试用例来源整理 --- ## 3. 开发计划与排期 ### `mvp-task-breakdown-and-schedule.md` MVP 任务拆解与排期文档。 主要覆盖: - MVP 范围定义 - 里程碑拆分 - 任务优先级 - 模块级任务清单 - 周计划建议 - 风险与应对策略 适合用于: - 排期评审 - 项目管理 - 开发迭代计划 --- ## 4. Rust 工程与模块设计 ### `rust-core-module-interface-design.md` Rust 核心模块接口设计文档。 主要覆盖: - `common` - `config` - `credential` - `platform` - `pty` - `terminal` - `ssh` - `sftp` - `transfer` - `session` - `app` 适合用于: - Rust 工程骨架设计 - trait / struct / enum 接口冻结 - 模块边界统一 ### `error-model-design.md` 错误模型设计文档。 主要覆盖: - 统一错误模型 - 错误码设计 - 错误分层 - 错误传播路径 - UI 错误展示模型 - 日志与脱敏策略 适合用于: - 接口返回值设计 - 错误处理统一 - 用户提示与日志方案设计 ### `config-storage-format-design.md` 配置存储格式设计文档。 主要覆盖: - `app.toml` - `hosts.toml` - `known_hosts.toml` - `runtime.toml` - 配置目录结构 - 版本迁移 - 默认值策略 - 原子写入与恢复策略 适合用于: - 配置持久化落地 - 设置与主机配置设计 - 配置迁移与兼容策略设计 --- ## 5. 终端与文件传输专项设计 ### `terminal-rendering-detailed-design.md` 终端渲染详细设计文档。 主要覆盖: - 终端网格模型 - 渲染快照 - 光标与选区 - 滚动与 scrollback - 脏区刷新 - 宽字符与 Emoji - Slint 终端绘制建议 - 性能优化方向 适合用于: - 终端区域实现 - 渲染性能专项设计 - 终端交互落地 ### `sftp-transfer-state-machine-design.md` SFTP 传输状态机设计文档。 主要覆盖: - 上传下载统一状态机 - 任务状态定义 - 状态转换规则 - 覆盖确认流程 - 取消 / 失败 / 重试语义 - 调度器与会话生命周期协作 适合用于: - 传输面板实现 - 任务调度逻辑设计 - UI 状态同步设计 --- ## 6. UI / ViewModel / 原型设计 ### `viewmodel-design.md` ViewModel 设计文档。 主要覆盖: - `AppViewModel` - `SidebarViewModel` - `WorkspaceViewModel` - `SessionTabViewModel` - `TerminalViewModel` - `SftpViewModel` - `TransferPanelViewModel` - `SettingsViewModel` - Dialog / Notification ViewModel 适合用于: - UI 状态建模 - Slint 与 AppController 之间的边界定义 - 事件到界面状态的映射设计 ### `slint-page-and-component-structure-design.md` Slint 页面与组件结构设计文档。 主要覆盖: - 主窗口布局 - 页面与面板层次 - 组件拆分建议 - 主窗口 / Sidebar / Workspace / SFTP / Transfer / Dialog 结构 - `ui/` 工程目录组织建议 适合用于: - Slint UI 工程结构设计 - 页面拆分 - 组件边界定义 ### `ui-prototype-modern.md` 第一版现代化界面原型说明。 主要覆盖: - 年轻化、现代化、专业化视觉方向 - Dark 主题风格建议 - 主窗口、Sidebar、终端区、SFTP、传输面板、弹窗的原型描述 适合用于: - 初期视觉方向确认 - 产品 / UI 对齐 ### `ui-prototype-dual-theme.md` Dark / Light 双主题原型说明。 主要覆盖: - 双主题总体策略 - Dark / Light 色板 - 双主题组件表现差异 - Light 模式下“浅色 UI + 深色终端”的建议 适合用于: - 双主题风格确认 - UI token 和主题系统设计 ### `detailed-dark-light-visual-mockups.md` Dark / Light 主窗口与关键弹窗细化视觉稿。 主要覆盖: - Dark 主窗口 - Light 主窗口 - Dark 设置弹窗 - Light 设置弹窗 - Dark 主机编辑弹窗 - Light 主机编辑弹窗 适合用于: - 视觉细化 - 组件实现前对齐 - UI 审查与确认 --- ## 7. 推荐阅读顺序 如果你是第一次接手这个项目,建议按以下顺序阅读: ### 路线 A:产品 / 架构优先 1. `terminal-sftp-product-technical-proposal.md` 2. `system-architecture-diagram-explanation.md` 3. `system-sequence-diagram-document.md` 4. `mvp-task-breakdown-and-schedule.md` ### 路线 B:工程实现优先 1. `rust-core-module-interface-design.md` 2. `error-model-design.md` 3. `config-storage-format-design.md` 4. `terminal-rendering-detailed-design.md` 5. `sftp-transfer-state-machine-design.md` ### 路线 C:UI 落地优先 1. `viewmodel-design.md` 2. `slint-page-and-component-structure-design.md` 3. `ui-prototype-modern.md` 4. `ui-prototype-dual-theme.md` 5. `detailed-dark-light-visual-mockups.md` --- ## 8. 当前目录与代码目录关系 建议项目后续保持如下分工: - `docs/` - 存放设计、架构、产品、UI 文档 - `prototype/` - 存放原型代码与视觉实验稿 - `ui/` - 存放正式 Slint 组件结构 - `src/` - 存放 Rust 源码 - 根目录配置文件 - `Cargo.toml` - `build.rs` 这样可以保证: - 文档归档清晰 - 原型与正式 UI 分离 - Rust 代码不和设计文档混在一起 --- ## 9. 建议下一步 如果继续推进项目,建议下一步优先做以下事项: 1. 完成可运行的 Rust + Slint 工程骨架 2. 将 `ui/` 目录接入构建流程 3. 先打通主窗口原型运行 4. 继续实现 `SettingsDialog` 与 `HostEditorDialog` 5. 开始接入 ViewModel 与 AppController 6. 再逐步落地终端、SSH、SFTP、传输逻辑 --- ## 10. 文档维护建议 后续新增文档时,建议遵循: - 文件名使用英文 kebab-case 风格 - 文档顶部包含用途、版本、关联文档 - 每新增一份重要文档,都更新本 README - 旧版本文档如废弃,建议明确标记,不要静默删除 ---