cargo-coupling
基于 Rust 的架构分析工具,用于衡量代码耦合度、识别重构热点,并通过 Vlad Khononov 框架实现依赖图形可视化。
简介
cargo-coupling 是一款针对 Rust 项目的架构分析工具,通过衡量模块之间的“正确距离”来评估代码质量。它基于 Vlad Khononov 的“软件设计中的平衡耦合 (Balancing Coupling in Software Design)”框架,根据整合强度、物理距离与易变性计算多维度的平衡分数。此工具专为软件工程师、架构师与技术主管设计,协助维护健康的程序代码库,识别诸如全局复杂度、循环依赖与级联变更风险等架构问题。
-
多维度指标:使用 (STRENGTH XOR DISTANCE) OR NOT VOLATILITY 公式计算平衡分数,区分健康的内聚力与问题耦合。
-
交互式 Web UI:通过 Cytoscape.js 提供基于浏览器的可视化界面,让使用者能探索依赖关系图、依据强度或易变性进行筛选,并检查特定模块的影响范围 (Blast Radius)。
-
热点识别:自动根据严重程度对重构目标进行排名,帮助团队优化技术债的处理优先级。
-
工作导向 CLI:提供 CI/CD 质量门禁检查、依赖追踪、影响分析,以及供自动化管线使用的机器可读 JSON 输出格式。
-
AI 整合支持:产生结构化输出,专为 AI 程序辅助工具设计,提供提取接口或模块解耦等具体重构建议。
-
语言支持:包含日语输出选项,提供摘要与设计决策矩阵。
-
此工具需要 Rust 环境并以 cargo 子命令形式运作,主要分析原始代码结构、模块导入及 crate 元数据。
-
基础分析请执行
cargo coupling ./src;若需进行可视化探索,可使用cargo coupling --web ./src。 -
通过 .coupling.toml 配置文件,使用者可自定义阈值、排除测试路径或手动定义模块的易变性(高或低)。
-
性能:利用 rayon 进行并行处理,能有效处理大型工作空间,并可整合至 CI/CD 管线中以强制执行模块化等级。
-
注意事项:本工具目前为实验性阶段。虽然能提供深度的架构洞察,但随着启发式规则与阈值的演进,建议使用者将结果与人工审查进行比对。
仓库统计
- Star 数
- 73
- Fork 数
- 2
- Open Issue 数
- 1
- 主要语言
- Rust
- 默认分支
- main
- 同步状态
- 空闲
- 最近同步时间
- 2026年5月4日 01:06