Tower-web0.3.1/2釋出,型別完善和修復更新

技術小能手發表於2018-10-19

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

原文連結


相關文章