如何在 Rust 稳定版本上使用 Rocket

Yoh*_*fle 3 rust rust-cargo rust-rocket

我正在尝试使用稳定版本rustc来编译火箭网络应用程序。rocketcrate 编译得很好,但我想使用rocket_contrib. 我的Cargo.toml文件如下所示:

[dependencies]
rocket = "0.5.0-rc.1"

[dependencies.rocket_dyn_templates]
version = "0.1.0-rc.1"
features = ["handlebars"]

[dependencies.rocket_contrib]
version = "0.4.10"
default-features = false
features = ["serve"]
Run Code Online (Sandbox Code Playgroud)

当我尝试运行时出现以下错误cargo build

Error: Pear requires a 'dev' or 'nightly' version of rustc.
Installed version: 1.52.1 (2021-05-09)
Minimum required:  1.31.0-nightly (2018-10-05)
Run Code Online (Sandbox Code Playgroud)

E_n*_*ate 7

从 Rocket 0.5 版本开始,您不应该使用rocket_contrib,因为这个功能被分成了一些功能,这些功能要么已经在核心 crate 中,要么移动到单独的 crate 中。此修订版的注释(另请参阅问题 1659)提供了更多详细信息:

在此之前,稳定的 contrib 功能已完全升级到核心,完全删除了“rocket_contrib”以支持两个新的 crate。这些板条箱的版本独立于 Rocket 的核心库,允许升级依赖项而无需考虑核心库中的版本。

'rocket_dyn_templates' 取代了 contrib 'templates' 功能。虽然主要是一对一的副本,但它进行了以下更改:

  • “tera_templates”功能现在为“tera”
  • “handlebars_templates”功能现在是“handlebars”
  • 如果“tera”和“handlebars”均未启用,则无法编译

'rocket_sync_db_pools' 取代了 contrib 'database' 功能。database 除了在 crate 根目录中正确记录该属性之外,它不会对替换的功能进行任何更改。

简而言之,您需要将代码从rocket_contrib. 一旦 v0.5 明确发布,可能会出现更好的指南,但在那之前,您可以在核心文档和相应的 Cargo 功能列表中查找曾经可用rocket_contrib功能