导读 历经四年多,四个 RC 版本、一千次 commit、一千多个 issue、讨论和 PR 之后,Rocket v0.5 正式发布了。

Rocket 是支持异步的后端 Rust Web 框架,专注于可用性、安全性、可扩展性和性能。它使编写安全的 Web 应用程序变得简单,而不会牺牲生产力或性能。

Rocket v0.5 部分重要新功能包括:
  • 支持稳定的 Rust 编译器:Rocket v0.5 基于 Rust 稳定版本进行编译和构建,开发者现在可以使用稳定发布通道中的 rustc 编译和构建 Rocket 应用程序,不再需要使用#![feature(..)]crate 属性。
  • #[macro_use] extern crate rocket;
    
    #[get("//")]
    fn hello(name: &str, age: u8) -> String {
        format!("Hello, {} year old named {}!", age, name)
    }
    
    #[launch]
    fn rocket() -> _ {
        rocket::build().mount("/hello", routes![hello])
    }
  • 支持异步 I/O:Rocket v0.5 重新构建了核心请求处理部分,利用了 Rust 中最新的异步网络功能。Rocket 现在可以自动在机器上的所有可用核心上多路复用请求处理,使路由处理程序可以声明为异步并使用 await 语法。
  • use rocket::tokio;
    use rocket::data::{Data, ToByteUnit};
    
    #[post("/debug", data = "")]
    async fn debug(data: Data<'_>) -> std::io::Result<()> {
        // Stream at most 512KiB all of the body data to stdout.
        data.open(512.kibibytes())
            .stream_to(tokio::io::stdout())
            .await?;
    
        Ok(())
    }
  • 支持 Sentinels:Rocket v0.5 引入了 Sentinels,这是 Rocket 框架独有的功能。Sentinels 提供了一种自动的最后防线,可以在出现无效条件时中止应用程序的启动。Sentinels 可以在 Rocket 之外实现,并且应该尽可能地使用它们。
  • use rocket::{Rocket, Ignite, Sentinel};
    
    impl Sentinel for MyResponder {
        fn abort(r: &Rocket) -> bool {
            r.state::().is_none() || !r.catchers().any(|c| c.code == Some(400))
        }
    }
  • 支持流和 SSE:Rocket v0.5 引入了实时的、类型化的异步流。Rocket 的新异步流部分包含了更多详细信息,我们鼓励所有感兴趣的人查看新的实时、多房间聊天示例。
  • 支持 WebSockets:Rocket v0.5 通过新的升级 API 引入了对 HTTP 连接升级的支持。这个 API 允许响应器在现有的 HTTP 连接中控制与客户端的原始 I/O,从而允许将 HTTP 连接升级到任何协议,包括 WebSockets。
  • 全面的表单功能支持:Rocket v0.5 完全改进了表单支持,支持多部分上传、任意嵌套的集合、即时验证等。Rocket 的新表单协议允许应用程序表达任何结构,任意嵌套和集合,无需任何自定义代码。
  • 除了上述功能之外,Rocket v0.5 还引入了其他 40 多个新功能和重大改进,包括安全和隐私头、优雅的关闭、灵活的配置系统、类型系统强制的数据限制等。

    Rocket v0.5 的发布是一个重要的里程碑,为 Rust 开发者提供了一个强大而易用的 Web 框架。我们鼓励所有用户升级到 Rocket v0.5,并查看完整的 CHANGELOG 以了解所有新功能和改进。

    请注意,Rocket v0.4 仍然会得到支持和安全更新,直到 Rocket v0.6 发布为止。

    原文来自:

    本文地址://q13zd.cn/rwkjrfbvzcyb.html编辑:向金平,审核员:清蒸github

    Linux大全:

    Linux系统大全:

    红帽认证RHCE考试心得: