agentdag/codemap
GitHub: agentdag/codemap
一个语言无关的代码架构图谱引擎,将代码库转换为可导航的结构化图谱,并通过双层模型分离机器提取事实与人工策划语义。
Stars: 1 | Forks: 0
# codemap
**状态:早期 / 开发中。** 核心引擎正在分阶段构建。
## 功能
codemap 会分析代码库并将其转换为可导航的图谱 —— 包括文件、模块、
类型、函数以及它们之间的关系。长期目标是打造一款能够:
- 自动**提取**与语言无关的代码图谱(如今使用 tree-sitter,
未来支持 language-server resolution)的工具。
- **检测**候选的服务/模块边界。
- **允许您**在顶层策划一个语义叠加层 —— 将代码分组到服务中,为节点添加标签、
绘制关系 —— 并且在代码更改时,它仍与代码保持绑定。
提取出的图谱始终是事实依据,从代码中重新生成。人工策划的内容位于
一个独立的、受版本控制的叠加层中。两者为视图进行组合,绝不混合。
## 当前功能
- 用于代码图谱的稳定中间表示 (IR),具有确定性
序列化 (`crates/core-ir`)。
- 针对 **Go** 的结构化提取器 —— 文件、包、结构体、接口、方法、
函数和模块内导入 (`crates/extract`)。
- 用于运行它的 CLI (`crates/cli`)。
## 构建与运行
```
cargo build
cargo run -p cli -- analyze ./fixtures/go-sample
```
这会以规范 JSON 的形式输出提取出的 IR。
## 架构
- **Rust 引擎** (`crates/`) —— 提取、IR 以及(未来支持)图谱分析、
叠加层和 codegen。
- **双层模型** —— 提取出的图谱(事实依据)+ 语义叠加层(人工编写)。
- 设计文档位于 [`docs/specs/`](docs/specs);决策位于 `docs/adr/`。
## 路线图
- [x] IR + 确定性序列化
- [x] Go 结构化提取器 + CLI
- [ ] 调用图(启发式边)
- [ ] 第二种语言 (TypeScript) 以验证提取器边界
- [ ] 使用 language-server resolution 实现精确的调用边
- [ ] 交互式图谱查看器
- [ ] 带有锚定/协调功能的语义叠加层(分组、固定、标签)
- [ ] 服务边界检测
- [ ] 感知框架的脚手架
## CI
- 有两项内容稍后添加,而非现在:
## License
详见 [LICENSE](LICENSE)。
标签:Rust, SOC Prime, 云安全监控, 代码分析, 代码图谱, 凭证管理, 可视化界面, 开发工具, 日志审计, 架构分析, 网络流量审计, 通知系统, 静态分析