xnuinside/codegraph
GitHub: xnuinside/codegraph
一款静态Python代码分析工具,通过词法解析生成交互式依赖关系图,支持大对象检测和未链接模块分析,无需执行代码即可了解代码结构。
Stars: 464 | Forks: 22
### CodeGraph - 静态代码分析器,用于创建代码结构图
  
**[实时演示](https://xnuinside.github.io/codegraph/)** - [simple-ddl-parser](https://github.com/xnuinside/simple-ddl-parser) 代码库的交互式可视化
用于创建代码结构图以显示代码实体(方法、模块、类等)之间依赖关系的工具。
CodeGraph 的主要优势在于它不会执行代码本身。您无需激活任何环境或安装依赖项即可分析目标代码。
它仅基于词法和语法解析,因此不需要安装您的代码依赖项。
### 交互式可视化

**缩放、平移与拖拽** - 使用鼠标滚轮缩放,拖拽背景进行平移,拖拽节点以重新定位。
### 搜索与高亮

**搜索自动补全** - 按 `Ctrl+F`(Mac 上为 `Cmd+F`)进行搜索。结果显示节点类型并带有颜色编码。

**高亮连接** - 点击任意节点可将其及所有关联节点高亮显示,其他节点将变暗。
### 节点信息

**工具提示** - 悬停在任意节点上可查看详情:类型、父模块、完整路径、代码行数以及连接数(传入/传出链接)。
### 链接计数

**链接计数面板** - 按连接数查找节点。可按"传入链接"或"传出链接"筛选,并设置阈值。
### 未链接模块

**未链接面板** - 显示没有连接的模块。点击可在图上导航到它们。
### 大对象检测

**大对象面板** - 按代码行数查找大型代码实体。可按类型(模块、类、函数)筛选,并设置阈值。
### 显示设置

**显示过滤器** - 按类型显示/隐藏节点(模块、类、函数、外部)以及按类型显示/隐藏链接(模块→模块、模块→实体、依赖关系)。
### UI 提示

**内置帮助** - 图例和键盘快捷键在 UI 中始终可见。
### 安装
```
pip install codegraph
```
### 使用方法
```
codegraph /path/to/your_python_code
```
这将生成一个交互式 HTML 可视化并在浏览器中打开。
### CLI 选项
| 选项 | 描述 |
|--------|-------------|
| `--output PATH` | HTML 文件的自定义输出路径(默认值:`./codegraph.html`)|
| `--csv PATH` | 将图数据导出到 CSV 文件 |
| `--matplotlib` | 使用传统的 matplotlib 可视化而非 D3.js |
| `-o, --object-only` | 仅将依赖项打印到控制台,不生成可视化 |
### CSV 导出
将图数据导出为 CSV,以便在电子表格或其他工具中分析:
```
codegraph /path/to/code --csv output.csv
```
CSV 列:
- `name` - 实体名称
- `type` - 模块 / 函数 / 类 / 外部
- `parent_module` - 父模块(用于函数/类)
- `full_path` - 文件路径
- `links_out` - 传出依赖数
- `links_in` - 传入依赖数
- `lines` - 代码行数
## 变更日志
有关完整版本历史,请参阅 [CHANGELOG.md](CHANGELOG.md)。
标签:AST解析, Python静态分析, 不执行代码分析, 交互式HTML可视化, 代码分析工具, 代码可视化, 代码图谱, 代码导航, 代码理解, 代码结构分析, 依赖关系图, 多模态安全, 大规模代码分析, 未链接模块检测, 模块依赖检测, 词法语法解析, 逆向工具, 静态代码分析工具