cargo-guppy:跟踪和查询依赖图

cargo-guppy:跟踪和查询依赖图

cargo-guppyTrack and query Cargo dependency graphs.项目地址:https://gitcode.com/gh_mirrors/ca/cargo-guppy

cargo-guppy 是一个强大的工具,用于在Rust项目中管理和查询Cargo依赖关系图。它包括一系列库和工具,为大型代码库的依赖管理提供了解决方案。

项目介绍

该项目的主要组件是 guppy 库,它允许对Cargo依赖图进行复杂查询,如直接或间接依赖关系,并且可以过滤出开发依赖等。此外,还有 cargo-guppy 命令行工具,以及几个基于 guppy 的实用工具,如 determinatorcargo-hakari,它们分别用于比较不同版本间的改动和管理工作空间内的“hack”包。

项目技术分析

guppy 使用了稳定的 petgraph 库作为基础,仅依赖于Cargo的 cargo metadata 格式,这意味着它的设计独立于Cargo内部,提供了更灵活的接口。项目支持 Rust 1.56 及以上版本。

库与工具

  • guppy: 提供依赖图查询功能,包括图形遍历、依赖筛选等功能。
  • guppy-summaries: 管理和存储构建摘要,列出包及其特性。
  • target-spec: 评估 Cargo.toml 中的目标规范。
  • determinator: 比较两个修订版之间的差异,找出更改的包。
  • cargo-hakari: 管理工作区中的特殊包,类似于 rustc-workspace-hack

开发状态

虽然 guppy 已经相对成熟,但围绕它的工具还在积极开发中。核心代码经过广泛的测试,与上游Cargo的模拟效果一致,甚至发现了Cargo的一些已知问题。

项目及技术应用场景

cargo-guppy 主要适用于大型Rust项目,帮助解决以下问题:

  • 跟踪并管理项目中的依赖。
  • 查询特定子集的直接和间接依赖。
  • 审查导致特定包被引入的原因。
  • 针对高保证或可靠性需求的部分包进行依赖性审查。
  • 在依赖图上进行基于特征的查询。
  • 自动化CI反馈,检测依赖更新或新增、高保证子集的变化等。

例如,在Diem Core项目中,cargo-guppy 被用于执行多种复杂的依赖性检查和管理工作。

项目特点

  • 基于稳定、成熟的 petgraph 库构建。
  • 与Cargo内部实现解耦,通过 cargo metadata 进行交互。
  • 支持过滤和查询dev依赖。
  • 全面的测试覆盖率,确保与Cargo行为的一致性。
  • 提供了命令行工具,方便日常使用。
  • 对生产环境的支持,如禁止特定依赖、分组管理依赖等规则。

总的来说,cargo-guppy 是管理大型Rust项目依赖关系的强大工具,无论你是寻求更高级的依赖查询还是想提升依赖管理的自动化水平,都值得尝试。对于任何希望精细化管理Rust项目依赖的开发者来说,它是不可或缺的伙伴。

cargo-guppyTrack and query Cargo dependency graphs.项目地址:https://gitcode.com/gh_mirrors/ca/cargo-guppy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杭律沛Meris

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值