xnuinside/codegraph

GitHub: xnuinside/codegraph

一款静态Python代码分析工具,通过词法解析生成交互式依赖关系图,支持大对象检测和未链接模块分析,无需执行代码即可了解代码结构。

Stars: 464 | Forks: 22

### CodeGraph - 静态代码分析器,用于创建代码结构图 ![徽章1](https://img.shields.io/pypi/v/codegraph) ![徽章2](https://img.shields.io/pypi/l/codegraph) ![徽章3](https://img.shields.io/pypi/pyversions/codegraph)![工作流](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/803afa98ab175606.svg) **[实时演示](https://xnuinside.github.io/codegraph/)** - [simple-ddl-parser](https://github.com/xnuinside/simple-ddl-parser) 代码库的交互式可视化 用于创建代码结构图以显示代码实体(方法、模块、类等)之间依赖关系的工具。 CodeGraph 的主要优势在于它不会执行代码本身。您无需激活任何环境或安装依赖项即可分析目标代码。 它仅基于词法和语法解析,因此不需要安装您的代码依赖项。 ### 交互式可视化 ![交互式代码可视化](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/6903622122175608.png) **缩放、平移与拖拽** - 使用鼠标滚轮缩放,拖拽背景进行平移,拖拽节点以重新定位。 ### 搜索与高亮 ![节点搜索](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/e175506fad175609.png) **搜索自动补全** - 按 `Ctrl+F`(Mac 上为 `Cmd+F`)进行搜索。结果显示节点类型并带有颜色编码。 ![高亮节点](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/a278bea94e175611.png) **高亮连接** - 点击任意节点可将其及所有关联节点高亮显示,其他节点将变暗。 ### 节点信息 ![节点信息](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/6a3845593d175612.png) **工具提示** - 悬停在任意节点上可查看详情:类型、父模块、完整路径、代码行数以及连接数(传入/传出链接)。 ### 链接计数 ![链接计数](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/296ee8f280175613.png) **链接计数面板** - 按连接数查找节点。可按"传入链接"或"传出链接"筛选,并设置阈值。 ### 未链接模块 ![未链接节点](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/961023170c175614.png) **未链接面板** - 显示没有连接的模块。点击可在图上导航到它们。 ### 大对象检测 ![大对象](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/9b7eb77ca6175616.png) **大对象面板** - 按代码行数查找大型代码实体。可按类型(模块、类、函数)筛选,并设置阈值。 ### 显示设置 ![显示设置](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/1ebf59bd52175617.png) **显示过滤器** - 按类型显示/隐藏节点(模块、类、函数、外部)以及按类型显示/隐藏链接(模块→模块、模块→实体、依赖关系)。 ### UI 提示 ![UI 提示](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/f394a5d571175618.png) **内置帮助** - 图例和键盘快捷键在 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可视化, 代码分析工具, 代码可视化, 代码图谱, 代码导航, 代码理解, 代码结构分析, 依赖关系图, 多模态安全, 大规模代码分析, 未链接模块检测, 模块依赖检测, 词法语法解析, 逆向工具, 静态代码分析工具