#graphql #serverless #认证

diana

迪安娜是一个开箱即用的GraphQL系统,全面支持作为无服务器函数使用,同时提供订阅和认证等常用功能

12个版本

0.2.9 2021年8月3日
0.2.8 2021年7月11日
0.2.1 2021年6月30日
0.1.1 2021年6月28日

HTTP服务器 中排名第 924

Download history 9/week @ 2024-03-08 4/week @ 2024-03-15 21/week @ 2024-03-29 10/week @ 2024-04-05 2/week @ 2024-04-19 3/week @ 2024-04-26

每月下载量 80
2 个Crate 中使用

MIT 许可证

67KB
878

迪安娜

实用的GraphQL,只需按下一个按钮。

书籍Crate页面API文档贡献

迪安娜是一个为Rust设计的GraphQL系统,旨在尽可能简单地开箱即用,同时不牺牲配置能力。与其他GraphQL系统不同,迪安娜 完全支持无服务器函数,并在需要时自动将其与服务器端订阅系统集成,通过认证通道。GraphQL订阅是状态ful的,因此必须以服务器ful方式运行。迪安娜使这个过程尽可能简单。

迪安娜的文档可以在书籍中找到。

安装

开始使用迪安娜非常简单!只需将其添加到您的Cargo.toml文件中即可

diana = "0.2.9"

由于其组件的复杂性,迪安娜确实有许多依赖项,因此在安装和编译第一次编译的所有内容时,您可能需要去泡一杯茶!

由于其结构,迪安娜需要您在开发时运行两个服务器。虽然将它们合并为一个可能很有吸引力,但这将完全不起作用,并且会在您的面前崩溃(模式冲突)!您可以选择两个二进制文件,或者使用我们推荐的方法,创建一个monorepo风格的crate,其中包含两个二进制crate和一个库crate以存储您的公共逻辑(书中有一个示例)。

所有其他文档都可以在书籍中找到,该书籍是用mdBook制作的。

版本控制

每个迪安娜集成都依赖于核心库,因此核心库的任何更改都将导致集成版本的更改。这也适用于反向操作,即集成中的任何版本更改也将导致核心版本和其他所有集成的版本更改。本质上,整个迪安娜都将保持某个版本,即该存储库的最新标签。

当添加新版本时,它将从 v0.1.0 开始。一旦它转移到稳定版本,原本应该是 v1.0.0 的版本,将立即提升到 Diana 生态系统其余部分的相同版本。

稳定性

Diana 正在积极开发中,并且仍然需要特别添加对通过 WebSocket 进行身份验证的支持。该项目有望在 2022 年之前转移到 v1.0.0 版本!

感谢 async_graphql

async_graphql 必须被认为是 Diana 的主要依赖项,也是该项目的最大灵感来源。这是一个出色的 Rust GraphQL 库,如果您想超越 Diana(这是一个更高级的库)的范围,这应该是您的首选。没有它,Diana 根本不可能实现。

为什么取名 Diana?

Diana 是希腊女神 Artemis 的罗马名字,她是神 Apollo 的妹妹。 Apollo GraphQL 是一家构建出色的 GraphQL 产品(与 Diana 没有任何关联)的公司,所以我们可能是在同一个名义家族中(如果这是一个东西)。

路线图

  • 支持在生产环境中使用 GraphiQL
  • 支持通过 WebSocket 进行订阅的身份验证
  • 支持无服务器环境中的 GraphiQL

贡献

如果您想为 Diana 做出贡献,那太好了!非常感谢!贡献指南可以在 这里 找到,并请确保您遵守我们的 行为准则

许可证

请参阅 LICENSE

依赖项

~28–45MB
~1M SLoC