1 个不稳定版本
0.16.0 | 2024 年 2 月 29 日 |
---|
#223 在 异步
145 次每月下载
被 10 个 crates(9 个直接) 使用
1.5MB
36K SLoC
Juniper(Rust 的 GraphQL 服务器库)
- Juniper 书籍 (当前 | 边缘)
- 变更日志
GraphQL 是由 Facebook 开发的一种数据查询语言,旨在为移动和 Web 应用程序前端提供服务。
Juniper 使得在 Rust 中编写类型安全且速度极快的 GraphQL 服务器成为可能。我们还尝试使声明和解析 GraphQL 模式尽可能方便,因为 Rust 允许这样做。
Juniper 不包括 Web 服务器 - 而是提供构建块,使与现有服务器的集成变得简单,包括嵌入式 GraphiQL 和/或 GraphQL Playground,以方便调试。
入门
开始学习最佳的地方是 Juniper Book,其中包含了大量的示例和指南,涵盖了Juniper的所有功能。
为了快速上手并了解Juniper,请查看“快速入门”部分。
有关宏、类型和Juniper API的具体信息,最好的地方是查看API文档。
功能
Juniper支持根据2021年10月GraphQL规范的完整GraphQL查询语言,包括接口、联合类型、模式内省和验证。然而,它不支持模式语言。
与其他语言的GraphQL库不同,Juniper默认构建非null
类型。类型为Vec<Episode>
的字段将被转换为[Episode!]!
。例如,与[Episode]
对应的Rust类型将是Option<Vec<Option<Episode>>>
。
集成
数据类型
Juniper与一些非常常见的Rust crate自动集成,使构建模式变得轻而易举。这些crate中的类型将自动可用于您的模式中
bigdecimal
(功能受限制)bson
chrono
(功能受限制)chrono-tz
(功能受限制)rust_decimal
(功能受限制)time
(功能受限制)url
uuid
Web服务器
actix-web
(juniper_actix
crate)hyper
(juniper_hyper
crate)iron
(juniper_iron
crate)rocket
(juniper_rocket
crate)warp
(juniper_warp
crate)
API稳定性
Juniper尚未达到1.0版本,因此应预料到一些API不稳定。
许可证
本项目采用BSD 2-Clause License授权。
依赖项
~8–16MB
~234K SLoC