Tide 是小型而实用的 Rust web 应用程序框架,为快速开发而构建。它提供了一组健壮的特性,使得构建异步 web 应用程序和 API 更加容易、更为有趣。
下面的示例中,将创建 HTTP 服务器,接收 JSON 文本,对其进行验证,并用确认消息进行响应。我们看看是多么简单——
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 之上。
因为个人喜欢,所以向各位朋友推荐。
💥 Tide 在生产环境的实践示例项目,请参阅 yazhijia(github 仓库)(将持续升级)
💥 关于清洁的模板项目,采用了纯粹的 Rust 技术栈。包括(将持续升级):
请参阅 github 仓库 tide-graphql-mongodb。目前实现了如下功能(将持续升级):
谢谢您的阅读。