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

mat*_*rni 13 rust rust-crates

对于这个问题可能没有一个好的答案,但我有代码,我想在两个不同的Rust项目之间共享而不将crate发布到crates.io.

代码是专有的,我不想把它放到野外.

She*_*ter 13

但它是专有代码,我不想把它放到野外.

您不必发布箱子.具体来说,只需创建crate(cargo new shared_stuff)然后指定依赖项目中常见包的路径Cargo.toml:

[dependency.shared_stuff]
path = "path/to/shared/crate"
Run Code Online (Sandbox Code Playgroud)

货物单证有类型的依赖的一整节:

我相信Cargo将允许您从私有 git存储库(例如Github或其他私有托管服务,例如GitLab)获取,但我没有亲自尝试过.根据我的搜索,您需要先经过身份验证或以其他方式配置git,以便不需要交互式密码输入.


从理论上讲,可以创建自己的箱子注册表.我甚至都没有尝试这样做,但机器存在于货物处理它.