如何在不发布到crates.io?的情况下在Rust项目之间共享公共代码

w46czmvw  于 2023-10-20  发布在  其他
关注(0)|答案(1)|浏览(129)

这个问题可能没有一个好的答案,但我有代码,我想在两个不同的Rust项目之间共享没有发布crate到crates.io。
代码是专有的,我不想把它放到野外。

ncecgwcz

ncecgwcz1#

但这是专有代码,我不想把它公开
你不必发布一个箱子。具体来说,只需创建crate(cargo new shared_stuff),然后在依赖项目的Cargo.toml中指定公共crate的路径:

[dependency.shared_stuff]
path = "path/to/shared/crate"

Cargo documentation有一个关于依赖关系类型的完整部分:

  • 从crates.io指定依赖项
  • 从git仓库中删除依赖项
  • 指定路径相关性

我相信Cargo会允许你从一个私有的git仓库(比如Github或者其他私有托管的服务,比如GitLab)中获取数据,但是我个人还没有尝试过。根据我的搜索,你需要事先验证或配置git不需要交互式密码输入。
从理论上讲,可以创建您自己的**crate注册表。我甚至没有尝试过这样做,但机械是目前在货物处理它。

相关问题