前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Tide - 基于 async-std 的 Rust-web 框架

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

作者头像
niqin.com
发布2022-06-30 16:32:31
8960
发布2022-06-30 16:32:31
举报
文章被收录于专栏:Rust 生态与实践

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 之上。

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

💥 Tide 在生产环境的实践示例项目,请参阅 yazhijia(github 仓库)(将持续升级)

  • 纯粹 Rust 技术栈实现的博客系统,有兴趣请访问演示站点:https://blog.budshome.com。
  • 后端(backend)主要提供 graphql 服务,使用了 tide, async-graphql, jsonwebtoken, mongodb 等相关 crate。
  • 前端(frontend)提供 web 应用服务,使用了 tide, rhai, surf, graphql_client, handlebars-rust, cookie 等相关 crate。

💥 关于清洁的模板项目,采用了纯粹的 Rust 技术栈。包括(将持续升级):

  • Rust - 中文资料集萃
  • Tide - 中文文档
  • async-graphql - 中文文档
  • mongodb & mongo-rust-driver
  • Surf
  • graphql_client
  • handlebars-rust
  • jsonwebtoken
  • cookie-rs

请参阅 github 仓库 tide-graphql-mongodb。目前实现了如下功能(将持续升级):

  • 用户注册
  • 使用 PBKDF2 对密码进行加密(salt)和散列(hash)运算
  • 整合 JWT 鉴权的用户登录
  • 密码修改
  • 资料更新
  • 用户查询和变更
  • 项目查询和变更
  • 使用基于 Rust 实现 graphql-client 获取 GraphQL 服务端数据
  • 渲染 GraphQL 数据到 handlebars-rust 模板引擎

谢谢您的阅读。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Rust 生态与实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档