主要观点:Rust 项目往往有很多依赖,通过对ripgrep
和miniserve
等项目的依赖检查进行了说明,指出存在多种类型的依赖,包括不想自己实现的功能相关依赖、作为系统设施或硬件设备规范接口的依赖等,还提到了“安全隔离”类型的依赖,如bytemuck
等,最后提出可以通过最小化特征和切换到依赖更少的并行 crate 等措施来减少依赖。
关键信息:
cargo tree
可打印当前 Cargo 包的依赖树,-e no-dev
可跳过开发依赖,--prefix none
可跳过默认树格式。sed
可对命令输出的每一行运行正则表达式进行处理。ripgrep
有 33 个依赖,miniserve
有 281 个依赖,包含各种不同的库。- 存在两种类型的依赖,以及“安全隔离”类型的依赖及其作用。
- 可通过
cargo add --no-default-features
减少特征从而减少依赖,或切换到依赖更少的并行 crate 。
重要细节:
- 在检查
ripgrep
依赖时,使用git clone
克隆项目,然后通过一系列sed
和cargo tree
命令来统计依赖数量。 - 在检查
miniserve
依赖时,添加了--no-default-features
来去除不必要的依赖。 - 举例说明不同类型的依赖,如
actix-web
带来tokio
等。 - 以
scopeguard
为例说明一些过于简单的操作使用单独 crate 是过度的。 - 以
smol
为例说明“安全隔离”类型依赖的作用。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。