Skip to content
Wenkang Zhu edited this page Aug 10, 2026 · 5 revisions

TitanSSH Wiki

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 持久化深化
  • ⬜ 进程管理、端口转发(未开始)

核心原则

  1. Session ≠ UI:会话是运行时实体,标签页只是视图;标签页不拥有连接
  2. 视图不解析输出:前端永不解析 shell 输出,Rust 只返回结构化 JSON
  3. invoke = 请求/响应,event = 流式推送:类型化、结构化、版本安全
  4. 服务隔离:terminal_service / sftp_service / monitor_service / process_service,无 god service
  5. 长任务可跟踪:taskId + pending → running → done | failed 状态机
  6. 无测试即不存在:TDD 强制,成功路径 + 失败路径 + 边界/重试

Clone this wiki locally