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, 云安全监控, 代码分析, 代码图谱, 凭证管理, 可视化界面, 开发工具, 日志审计, 架构分析, 网络流量审计, 通知系统, 静态分析