前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Rust GraphQL 服务器类库性能简单测试

Rust GraphQL 服务器类库性能简单测试

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

GraphQL 是 Facebook 开发的一种数据查询语言,旨在为移动和 Web 应用程序前端提供服务。最近几年,GraphQL 应用趋势增长明显,如 GitHub 几年前已经仅对开发者提供 GraphQL API。相比较 Restful API,GraphQL 优势明显:

  1. GraphQL API 有强类型 schema;
  2. 按需获取;
  3. GraphQL支持快速产品开发;
  4. 自由组合的 GraphQL API;
  5. 丰富的开源生态和非常活跃的社区

Rust 程序设计语言中,对于 GraphQL 的支持非常活跃,并且均支持异步 async/await。目前,Rust 生态中,存在两个用Rust语言实现的GraphQL服务端库:async-graphql 和 juniper。

async-graphql 较为新生,基于较新的 async-std 异步库开发;而 juniper 较为成熟,基于更为成熟的 tokio 异步库开发。两者均完全兼容GraphQL规范以及绝大部分的扩展功能,类型安全并且高性能。

在 async-graphql 团队的 benchmark 仓库中,提供了两者性能简单比较的示例。经测试,两者性能差别较为明显。

测试数据如下(请注意,测试数据仅供参考,并不能全面反映实际生产环境的压力基准)——

代码语言:javascript
复制
# 第 1 次
juniper: 46216 ms
async-graphql: 27354 ms

# 第 2 次
juniper: 45990 ms
async-graphql: 26272 ms

# 第 3 次
juniper: 47518 ms
async-graphql: 28352 ms

# 第 4 次
juniper: 116272 ms
async-graphql: 72569 ms

# 第 5 次
juniper: 114950 ms
async-graphql: 67003 ms

# 第 6 次
juniper: 106416 ms
async-graphql: 61086 ms

如需要进一步了解学习,请访问各自教程。

juniper—— https://juniper.budshome.com

async-std—— https://async-graphql.budshome.com

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档