如何在不发布到 crates.io 的情况下在 Rust 项目之间共享公共代码?
How do I share common code between Rust projects without publishing to crates.io?
这个问题可能没有很好的答案,但我有代码想在两个不同的 Rust 项目之间共享 WITHOUT 将 crate 发布到 crates.io.
该代码是专有的,我不想将其公开。
but it's proprietary code and I don't want to put it out into the wild.
您不必发布 一个箱子。具体来说,只需创建 crate (cargo new shared_stuff
),然后在依赖项目的 Cargo.toml
:
中指定公共 crate 的路径
[dependency.shared_stuff]
path = "path/to/shared/crate"
Cargo documentation有一整节介绍依赖类型:
- Specifying dependencies from crates.io
- Specifying dependencies from git repositories
- Specifying path dependencies
我相信 Cargo 将允许您从 private git 存储库(例如 Github 或其他私人托管服务,例如GitLab),但我还没有亲自尝试过。根据我的搜索,您需要事先进行身份验证或以其他方式配置 git 不需要交互式密码输入。
理论上可以创建您的自己的 crate 注册表。我什至没有尝试这样做,但 Cargo 中有机器来处理它。
这个问题可能没有很好的答案,但我有代码想在两个不同的 Rust 项目之间共享 WITHOUT 将 crate 发布到 crates.io.
该代码是专有的,我不想将其公开。
but it's proprietary code and I don't want to put it out into the wild.
您不必发布 一个箱子。具体来说,只需创建 crate (cargo new shared_stuff
),然后在依赖项目的 Cargo.toml
:
[dependency.shared_stuff]
path = "path/to/shared/crate"
Cargo documentation有一整节介绍依赖类型:
- Specifying dependencies from crates.io
- Specifying dependencies from git repositories
- Specifying path dependencies
我相信 Cargo 将允许您从 private git 存储库(例如 Github 或其他私人托管服务,例如GitLab),但我还没有亲自尝试过。根据我的搜索,您需要事先进行身份验证或以其他方式配置 git 不需要交互式密码输入。
理论上可以创建您的自己的 crate 注册表。我什至没有尝试这样做,但 Cargo 中有机器来处理它。