当前位置: 首页 > 工具软件 > Tower-web > 使用案例 >

Tower-web 0.3.1/2 发布,类型完善和修复更新

濮冠宇
2023-12-01

Tower-web:Rust的快速,无样板,Web框架

0.3.2更新

  • 响应类型支持泛型 (#144)

  • 资源类型支持泛型(#143)

  • 百分比解码字符串和PathBufs (#108)

0.3.1 更新

  • 修复panic在内容类型未提供时 (#123).

  • 所有数字类型实现Extract (#131).

  • 忽略其他derives的属性 (#130).

  • 禁用日志记录时避免clone(#126).

  • 添加非阻塞serve方法来运行服务器 (#76).

Tower-web介绍:

  • 快速:完全异步,基于TokioHyper构建。

  • 符合人体工程学:Tower-web将HTTP与应用程序逻辑分离,删除所有样板。

  • 适用于Rust stable:您今天可以使用它。

    #[macro_use]
     extern  crate tower_web;
    extern  crate tokio;
    
    使用 tower_web :: ServiceBuilder;
    使用 tokio :: prelude :: * ;
    
    ///此类型将作为资源的Web服务的一部分。
    #[derive(Clone,Debug)]
    struct  HelloWorld ;
    
    ///这将是JSON响应
    #[导出(响应)]
    struct  HelloResponse {
        消息:&' static  str,
    }
    
    impl_web!{
         impl  HelloWorld {
            #[get(“/”)]
            #[content_type(“json”)]
             fn  hello_world(&self) - > Result <HelloResponse,()> {
                 Ok(HelloResponse {
                    消息:“你好世界”,
                })
            }
        }
    }
    
    pub  fn  main(){
         let addr =  “127.0.0.1:8080”。解析()。期望(“无效地址”);
        调用println!(“听取http:// {}”,addr);
    
        ServiceBuilder :: new()
            。资源(HelloWorld)
            。运行(& addr)
            。unwrap();
    }

Tower-web 基于 Tokio(Rust的并发框架与平台)和Hyper(Rust的HTTP的server框架)。

Tower-web 是 Tokio 生态系统的一部分。

本文来自云栖社区合作伙伴“开源中国”

本文作者: krircc

原文链接


 类似资料: