如何在 crates.io 中对另一个 crate 使用相同的包名称?

问题描述 投票:0回答:1

我想接管已经部署在 crates.io 中的不再维护的开源 Rust 包。

虽然在 Cargo.toml 中要求为我的分叉使用不同的名称显然是适当且适当的,但我不希望要求更改其余代码,以使潜在用户更容易切换。当我简单地重命名Cargo.toml中的条目时,很多代码到处都被破坏了。需要的是旧名称。

提供相同功能的可插入实现,用户可以轻松切换,比较性能和自己的测试结果,这看起来更合乎逻辑。

作为解决方法,我目前在 Cargo.toml:

中指定 git URL
old_name = { git = "https://github.com/new_repository", branch = "1.0.0" }

这在测试我自己的部署时对我有用。但我可能更喜欢 crates.io 作为公共开源项目。

是否可以使用与代码中引用的包名称不同的名称在 crates.io 上部署项目,以及如何部署?我查看了cargopublish的文档,但似乎没有涵盖这种情况。

rust open-source rust-cargo rust-crates
1个回答
0
投票

您可以通过指定

package
文档)来重命名依赖项。看起来是这样的:

old_name = { package = "new_name", version = "..." }

这意味着它可以在您的代码中以

old_name
的形式进行访问,但货物在解析时会以
new_name
的形式查找它。

© www.soinside.com 2019 - 2024. All rights reserved.