Skip to content

Clash Verge Rev从桌面 UI 到代理核心的完整源码拆解

沿着“订阅配置 → 增强流水线 → Mihomo 双运行模式 → IPC/事件 → React 实时界面”这条主轴,读懂一个生产级跨平台网络客户端。

Clash Verge Rev 源码拆解

这套文档解决什么问题

Clash Verge Rev 表面上是一个图形化代理客户端,内部却同时处理四类高复杂度问题:

  1. 跨平台桌面应用:Tauri 生命周期、窗口、托盘、热键、深链、更新器。
  2. 特权网络操作:系统代理、TUN、守护服务、管理员权限与故障恢复。
  3. 配置编译:订阅 YAML、Merge、JavaScript、应用设置被编译成 Mihomo 的运行时配置。
  4. 高频实时界面:流量、连接、日志和节点延迟通过 WebSocket 持续进入 React。

只看某一个页面或某一个 Rust command,很容易陷入细节。更有效的阅读方式是先抓住系统的控制流和数据流,再回到模块内部。

远程 / 本地 Profile
应用与 Clash 设置
Merge / Script / Seq
↓ 收集、合并、保护权威字段、校验
Runtime YAML
Service 或 Sidecar
Mihomo API / WebSocket
↓ IPC 命令、事件推送与共享订阅
SWR 缓存
React Hooks
8 个产品页面

建议阅读路线

目标建议章节
建立完整架构认知01 → 02 → 03 → 04
理解配置为什么复杂05 → 06 → 07 → 08
理解 Service、Sidecar 与 TUN09 → 10 → 11
做前端或性能优化12 → 13
做跨平台集成和发布14 → 15

研究基线

本文档基于清单版本为 2.5.3 的本地开发快照。由于源码快照不含 .git,没有可验证的提交哈希。源码路径是定位依据;上游网页在持续演进,细节可能变化。

原创文档 CC BY-SA 4.0 · 站点代码 MIT