Tide - 基于 async-std 的 Rust-web 框架

2022-06-30 16:32:31 浏览数 (1)

Tide 是小型而实用的 Rust web 应用程序框架,为快速开发而构建。它提供了一组健壮的特性,使得构建异步 web 应用程序和 API 更加容易、更为有趣。

下面的示例中,将创建 HTTP 服务器,接收 JSON 文本,对其进行验证,并用确认消息进行响应。我们看看是多么简单——

代码语言:javascript复制
use tide::prelude::*;
use tide::Request;

#[derive(Debug, Deserialize)]
struct Animal {
    name: String,
    legs: u8,
}

#[async_std::main]
async fn main() -> tide::Result<()> {
    tide::log::start();
    let mut app = tide::new();

    app.at("/orders/shoes").post(order_shoes);
    app.listen("127.0.0.1:8080").await?;

    Ok(())
}

async fn order_shoes(mut req: Request<()>) -> tide::Result {
    let Animal { name, legs } = req.body_json().await?;
    Ok(format!("Hello, {}! I've put in an order for {} shoes", name, legs).into())
}

相较于 actix-web,本人更喜欢 Tide。以前个人是 actix-web 用户,用其开发过基于 actix-web、juniper(Rust 的 graphql 实现)、postgresql、react 等的 web 综合应用,但先经我比较后,兴趣更多放在了 Tide 和 async-graphql 之上。

因为个人喜欢,所以向各位朋友推荐。

0 人点赞