【问题标题】:How to use rocket on stable release of Rust如何在 Rust 的稳定版本中使用火箭
【发布时间】:2021-08-31 03:40:32
【问题描述】:

我正在尝试使用rustc 的稳定版本来编译火箭网络应用程序。 rocket crate 编译得很好,但我想使用来自 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"]

当我尝试运行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)

【问题讨论】:

    标签: rust rust-cargo rust-rocket


    【解决方案1】:

    从 Rocket 的 0.5 版开始,您不应该使用rocket_contrib,因为它被拆分为已经在核心板条箱中或移动到单独板条箱中的功能。来自this revision(另见issue 1659)的注释提供了更多细节:

    这是在稳定的贡献功能完成升级到 核心,完全删除“rocket_contrib”以支持两个新的 板条箱。这些板条箱的版本独立于 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 后,可能会提供更好的指南,但在那之前,您可以在 core documentation and respective Cargo feature list 中查找曾经在 rocket_contrib 中提供的功能。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-11
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多