Rust Web 框架 Rocket 发布 v0.5:支持异步、SSE、WebSockets 等

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

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

Rocket v0.5部分重要新功能包括:

  1. 支持稳定的Rust编译器:Rocket v0.5基于Rust稳定版本进行编译和构建,开发者现在可以使用稳定发布通道中的rustc编译和构建 Rocket 应用程序,不再需要使用#![feature(..)]crate 属性。
     

    #[macro_use] extern crate rocket;
    
    #[get("/<name>/<age>")]
    fn hello(name: &str, age: u8) -> String {
        format!("Hello, {} year old named {}!", age, name)
    }
    
    #[launch]
    fn rocket() -> _ {
        rocket::build().mount("/hello", routes![hello])
    }

     

  2. 支持异步I/O:Rocket v0.5重新构建了核心请求处理部分,利用了Rust中最新的异步网络功能。Rocket现在可以自动在机器上的所有可用核心上多路复用请求处理,使路由处理程序可以声明为异步并使用await语法。
     

    use rocket::tokio;
    use rocket::data::{Data, ToByteUnit};
    
    #[post("/debug", data = "<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(())
    }

     

  3. 支持Sentinels:Rocket v0.5引入了Sentinels,这是Rocket框架独有的功能。Sentinels提供了一种自动的最后防线,可以在出现无效条件时中止应用程序的启动。Sentinels可以在Rocket之外实现,并且应该尽可能地使用它们。
     

    use rocket::{Rocket, Ignite, Sentinel};
    
    impl Sentinel for MyResponder {
        fn abort(r: &Rocket<Ignite>) -> bool {
            r.state::<T>().is_none() || !r.catchers().any(|c| c.code == Some(400))
        }
    }

     

  4. 支持流和SSE:Rocket v0.5引入了实时的、类型化的异步流。Rocket的新异步流部分包含了更多详细信息,我们鼓励所有感兴趣的人查看新的实时、多房间聊天示例。

  5. 支持WebSockets:Rocket v0.5通过新的升级API引入了对HTTP连接升级的支持。这个API允许响应器在现有的HTTP连接中控制与客户端的原始I/O,从而允许将HTTP连接升级到任何协议,包括WebSockets。

  6. 全面的表单功能支持:Rocket v0.5完全改进了表单支持,支持多部分上传、任意嵌套的集合、即时验证等。Rocket的新表单协议允许应用程序表达任何结构,任意嵌套和集合,无需任何自定义代码。

除了上述功能之外,Rocket v0.5还引入了其他40多个新功能和重大改进,包括安全和隐私头、优雅的关闭、灵活的配置系统、类型系统强制的数据限制等。

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

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

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/267838/rocketrs-0-5-released

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。