6 个版本 (3 个重大更新)
0.4.1 | 2022年12月28日 |
---|---|
0.4.0 | 2022年10月1日 |
0.3.0 | 2022年10月1日 |
0.2.0 | 2022年4月23日 |
0.1.1 | 2022年4月22日 |
#314 在 Cargo插件
每月24次下载
17KB
306 代码行
Cargo Structure
Cargo structure 会搜索项目中所有的 Cargo.toml
文件,输出一个可以输入到如 graphviz 这样的渲染器的依赖关系点图。
示例
安装
cargo install cargo-structure
用法
将 cargo structure 作为 cargo 插件运行。不需要指定根包,默认为 .
,即当前目录。
Cargo Structure 将遍历所有定义在相应 Cargo.toml
中的具有 path = ...
属性的本地子仓。这在绘制一般架构图时非常有用,实际上显示了所有本地子仓之间的相互依赖关系。
cargo structure <ROOT PACKAGE PATH>
您还可以仅显示本地子仓的图,这在您想忽略外部依赖杂项并关注本地项目结构时很有用。
cargo structure --local
您还可以使用 --ignore
选项忽略特定的依赖。
cargo structure --ignore clap toml
您还可以遍历整个树来生成所有子仓中所有依赖的图,即使它们不在同一个仓中。这可以通过 --monolithic
标志来完成。
cargo structure --monolithic
如果您在您的仓中有子仓,可以通过对它们的相对文件路径进行模糊搜索来过滤掉它们。这仅适用于单一搜索。
cargo structure --ignore-paths my_local_subcrate
输出最适用于通过管道传递到如 dot
这样的 graphviz 命令。如果您已安装 graphviz,可以通过运行以下命令生成 dot 图。
cargo structure | dot -Tsvg > structure.svg
通常,您会想忽略某些目录,因为默认情况下,该工具会对根路径下所有包的整个子树生成单个单一输出。
cargo structure . --ignore-paths target | dot -Tsvg > structure.svg
路线图
- 使用特定根 toml 转换而不是递归单一子树搜索。
- 默认为根 toml 转换。
- 仅本地路径依赖。
- 根据依赖类型对边进行独特样式化。
贡献
欢迎贡献!只需分支仓库并提交拉取请求。
依赖
~3–11MB
~113K SLoC