The GraphQL server library implemented by rust
Async-graphql
is a GraphQL server library that fully supports async/await and is easy to use.
It supports all of the GraphQL specifications and is easy to integrate into existing web servers.
- Book(WIP)
- 中文文档
- Docs
- GitHub repository
- Cargo package
- Minimum supported Rust version: 1.42 or later
Examples
If you are just getting started, we recommend checking out our examples at: https://github.com/async-graphql/examples
To see how you would create a Relay-compliant server using async-graphql, warp, diesel & postgesql, you can also check out a real-world example at: https://github.com/phated/twentyfive-stars
Benchmark
git clone https://github.com/async-graphql/benchmark
cargo run --release
Features
- Fully support async/await
- Type safety
- Rustfmt friendly (Procedural Macro)
- Custom scalar
- Minimal overhead
- Easy integration (hyper, actix_web, tide ...)
- Upload files (Multipart request)
- Subscription (WebSocket transport)
- Custom extension
- Apollo Tracing extension
- Limit query complexity/depth
- Error Extensions
- Apollo Federation
Integrations
- Actix-web async-graphql-actix-web
- Warp async-graphql-warp
- Tide async-graphql-tide
License
Licensed under either of
- Apache License, Version 2.0, (./LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (./LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.
References
- GraphQL
- GraphQL Multipart Request
- GraphQL Cursor Connections Specification
- GraphQL over WebSocket Protocol
- Apollo Tracing
- Apollo Federation
Contribute
Welcome to contribute !