Rust 控制平面原型 (ECC 2.0)
Rust 控制平面原型 (ECC 2.0)
学习目标
本章要解决什么问题:理解 ECC 为什么从 Node.js 脚本插件演进到 Rust 二进制控制平面,以及当前的实现状态。
读完本章后,你将了解:
- ECC 2.0 的演进动机
- 控制平面原型的已有命令
- 与 v1.x 的关系和边界
- 从 Node.js 到 Rust 的技术选型理由
项目实践
演进动机
ECC v1.x 是一个 Claude Code 插件:
- 安装到
~/.claude/plugins/目录 - 通过 Claude Code 的插件加载机制运行
- 脚本层是 Node.js (CommonJS)
- 依赖 Claude Code 的进程生命周期
v1.x 的局限性:
- 无法独立于 Claude Code 进程运行(如后台会话管理)
- 性能受限于 Node.js 单线程模型
- 类型安全无保障(纯 JavaScript)
- 安装依赖 Claude Code 的插件系统
ECC 2.0 的目标:
- 独立进程运行的控制平面(不依赖 harness 进程)
- 更好的性能和并发
- 类型安全的二进制文件
- 独立于 Claude Code 的生命周期管理
ecc2/ 当前状态
ECC 2.0 的 Rust 原型位于 ecc2/ 目录,当前为 alpha 阶段:
已有命令:
ecc2 dashboard # 仪表板 GUIecc2 start # 启动控制平面ecc2 sessions # 会话管理ecc2 status # 状态检查ecc2 stop # 停止控制平面ecc2 resume # 恢复会话ecc2 daemon # 后台守护进程状态存储:SQLite-backed 状态管理(延续 v1.x 的状态存储设计)。
构建:可在本地编译运行,但尚未作为通用发布版本。
与 v1.x 的关系
关键:ECC 2.0 不替代 v1.x 的技能/代理/规则系统,而是消费这些资产:
- Skills 仍然是 Markdown 格式,由 Rust 控制平面加载
- 钩子系统可能由 Rust 守护进程管理
- v1.x 的安装管道可能被 Rust 二进制替代
CHANGELOG 中的官方描述
ECC 2.0 alpha is in-tree — the Rust control-plane prototype in
ecc2/now builds locally and exposesdashboard,start,sessions,status,stop,resume, anddaemoncommands. It is usable as an alpha, not yet a general release.
问题与规避
Alpha 阶段功能不完整
问题:ECC 2.0 目前只有 7 个基本命令,不覆盖 v1.x 的全部功能。
规避方案:
- 文档中明确标注 “alpha,尚未通用发布”
- 用户应继续使用 v1.x 作为生产版本
- ECC 2.0 仅供测试和反馈
Rust 学习曲线
问题:从 Node.js 切换到 Rust 提高了社区贡献门槛。
规避方案:
ecc2/目录隔离清晰,不影响 v1.x 的 Node.js 开发- 安装、构建文档中包含 Rust 工具链设置指南
设计取舍
为什么选 Rust 而非 TypeScript/Go?
| 维度 | Rust | TypeScript | Go |
|---|---|---|---|
| 性能 | 高(编译二进制) | 中(Node.js 运行时) | 高(编译二进制) |
| 类型安全 | 强(编译时保证) | 中(需要 tsc) | 中(静态类型) |
| 进程管理 | 原生守护进程 | 需要 pm2 等外部工具 | 原生守护进程 |
| 社区生态 | CLI 工具生态成熟 | npm 生态大但非系统级 | 云原生生态 |
| 学习曲线 | 陡峭 | 低 | 中等 |
ECC 的选择理由:
- 独立进程管理不需要依赖外部工具(如 pm2)
- 编译时类型安全减少运行时错误
- 更好的内存和 CPU 效率(对长期运行的守护进程重要)
代价:重写大量已有逻辑,社区贡献门槛提高。
为什么先做原型而非完整重写?
ECC 2.0 以 alpha 原型形式存在于 v1.x 仓库中:
- 优势:渐进式迁移,不影响 v1.x 的稳定性
- 代价:两套代码并行维护
- 替代方案:独立仓库。ECC 选择同仓库共存因为资产复用(技能、规则)需要紧密集成
参考来源
- 源码验证:
ecc2/目录 — Rust 控制平面原型 - 源码验证:
CHANGELOG.md中 v2.0.0-rc.1 的描述 - 源码验证:
docs/ECC-2.0-REFERENCE-ARCHITECTURE.md— 参考架构文档