Tower-web—Rust的快速、無樣板Web框架

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

Tower-web :Rust 的快速、無樣板 Web 框架

Tower Web 介紹:

  • 快速:完全非同步,基於TokioHyper構建。

  • 符合人體工程學:Tower-web將HTTP與應用程式邏輯分離,刪除所有樣板。

  • 適用於Rust stable:穩定。

Tower Web是一個快速的Web框架,旨在刪除樣板。

目標是將所有HTTP概念與應用程式邏輯分離。使用“普通Rust型別”實現應用程式,Tower Web使用巨集來生成必要的粘合劑,以便將應用程式作為HTTP服務提供。 

#[macro_use]
extern crate tower_web;
extern crate tokio;

use tower_web::ServiceBuilder;
use tokio::prelude::*;

/// This type will be part of the web service as a resource.
#[derive(Clone, Debug)]
struct HelloWorld;

/// This will be the JSON response
#[derive(Response)]
struct HelloResponse {
    message: &`static str,
}

impl_web! {
    impl HelloWorld {
        #[get("/")]
        #[content_type("json")]
        fn hello_world(&self) -> Result {
            Ok(HelloResponse {
                message: "hello world",
            })
        }
    }
}

pub fn main() {
    let addr = "127.0.0.1:8080".parse().expect("Invalid address");
    println!("Listening on http://{}", addr);

    ServiceBuilder::new()
        .resource(HelloWorld)
        .run(&addr)
        .unwrap();
}

Tower Web 基於Tokio (Rust併發框架與平臺)和Hyper(Rust的HTTP server框架)構建。

Tower Web 框架屬於Tokio平臺生態重要部分。

本文來自雲棲社群合作伙伴“開源中國”

本文作者:h4cd

原文連結


相關文章