-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Wenkang Zhu edited this page Aug 10, 2026
·
5 revisions
TitanSSH(ssh-terminal-manager)是一个基于 Tauri 2 + React 19 + Rust 的跨平台桌面 SSH 运维客户端,提供 SSH 终端、文件传输(SFTP)、服务器监控与进程管理能力。
本文档为仓库现状的工程 Wiki,长期维护,与代码同步演进。
| 文档 | 内容 |
|---|---|
| Architecture | 整体架构:分层、通信模型、核心原则 |
| Backend | Rust 后端:core 服务、commands、storage、errors |
| Frontend | React 前端:stores、components、页面结构 |
| API | invoke 命令与事件契约(前后端接口) |
| Data Models | 数据模型:HostConfig、SessionInfo、TransferTask 等 |
| Testing | 测试策略与覆盖(TDD) |
| Development | 开发环境、脚本、工作流 |
| Roadmap | 功能现状与演进方向 |
- 产品形态:桌面应用(macOS / Windows / Linux)
- 技术栈:Tauri 2.x · React 19 · TypeScript(strict) · Zustand 5 · xterm.js · Ant Design 6 · Rust 2024 edition · ssh2 · Tokio
- 代码规模:Rust 后端约 7.4k 行(src-tauri/src),前端约 2.3k 行(src)
- 当前分支:dev(活跃开发)
- 当前阶段:Phase 1 完成 —— 主机管理、多标签终端、服务器监控、SFTP 文件传输;并完成架构深化(见 Architecture Review)
- ✅ 主机配置管理(新建 / 编辑 / 删除,密码与私钥认证,凭据落盘失败补偿)
- ✅ 多标签 SSH 终端(xterm.js 渲染、后端处理 IO、PTY resize、连接阶段诊断)
- ✅ 服务器监控(CPU / 内存 / 磁盘,自动采集推送)
- ✅ SFTP 文件浏览、上传 / 下载、进度跟踪、任务取消、失败重试
- ✅ 安全凭据存储(OS Keychain / Credential Manager,不落盘明文)
- ✅ 架构深化:Session 生命周期后端权威化、module 隔离、SSH transport 深化、任务状态单一事实、HostConfig 持久化深化
- ⬜ 进程管理、端口转发(未开始)
- Session ≠ UI:会话是运行时实体,标签页只是视图;标签页不拥有连接
- 视图不解析输出:前端永不解析 shell 输出,Rust 只返回结构化 JSON
- invoke = 请求/响应,event = 流式推送:类型化、结构化、版本安全
- 服务隔离:terminal_service / sftp_service / monitor_service / process_service,无 god service
-
长任务可跟踪:taskId +
pending → running → done | failed状态机 - 无测试即不存在:TDD 强制,成功路径 + 失败路径 + 边界/重试