我正在创建一个库,它几乎是它的第一个版本,所以我想上传到crates.io
.库有一个多 crate 设计,所以我以这样的方式结束:
- CrateA
- CrateProcMacros
- CrateC
- CrateD
- CrateE
- CrateF
- Cargo.toml (handles the workspace)
- Cargo.lock
...
其中CrateA
是其他 crate 的父项,并依赖于这些本地 crate 中的另一个,其中一些 crate 也依赖于另一个 crate .我的意思是,它是库的主箱,负责公开项目的公共API,也是我希望在crates.io
中发布的唯一的一个.
读取我看到的cargo docs,我将无法向注册表发布唯一的 crate .所有内容都将被上传并发布.
那么,我有什么方法可以只将我的CrateA
发布到注册表中呢?我是不是应该改变我的项目 struct ,把所有其他的包都移到CrateA
,然后再试着发布它?或者有什么方法可以做到这一点?
编辑
CrateA
个直接依赖于另一个 crate .这些人也依赖于我工作区内的另一个人.