跳转到内容

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 阶段

已有命令

Terminal window
ecc2 dashboard # 仪表板 GUI
ecc2 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 exposes dashboard, start, sessions, status, stop, resume, and daemon commands. 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?

维度RustTypeScriptGo
性能高(编译二进制)中(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 — 参考架构文档