【问题标题】:Confusion about dependencies in cargo关于货物依赖的困惑
【发布时间】:2021-01-19 09:17:11
【问题描述】:

我来自 Java 背景,我正在使用 hyper 库来构建 HTTP 代理。所以我在 Cargo.toml 中添加了 hypertokio。我遵循http_proxy 示例,但首先我必须将httpfutures-util 添加到Cargo.toml。否则,rustc 报错。

error[E0433]: failed to resolve: use of undeclared crate or module http

hyper crate 依赖于http,所以这意味着 cargo 中的依赖不能共享到我的项目? 但我在 Clion 的 External Libraries 列表中看到了 http 0.2.3。在Maven构建的Java项目中,依赖可以从jar共享到我的项目中,所以我可以直接使用。

【问题讨论】:

  • 我现在无法回答,但this 应该是相关的。

标签: rust rust-cargo


【解决方案1】:

hyper crate 依赖于http,所以这意味着cargo 中的依赖不能共享到我的项目中?但我在 Clion 的外部库列表中看到了 http 0.2.3。在Maven构建的Java项目中,依赖可以从jar共享到我的项目中,所以我可以直接使用。

没错。您只能使用已声明的直接依赖项:不能假定间接依赖项是直接依赖项 API 的一部分,因此它们可以在任何次要更新中删除,从而破坏 semver 保证。

但是在某些情况下,直接依赖项会重新导出其自身依赖项的一部分(甚至是整个基础依赖项),例如“E_net4 with 20k”链接,这似乎是hyper 的案例,它重新导出了 http 的部分内容。如果 Hyper 重新导出的内容不足以满足您的用例,那么是的,您必须添加对 http 的显式依赖才能访问您需要的内容。

【讨论】:

    猜你喜欢
    • 2012-09-28
    • 1970-01-01
    • 2015-10-08
    • 2012-08-19
    • 2018-10-20
    • 2016-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多