Async-graphql is a high-performance server-side library that supports all GraphQL specifications.
- Feature Comparison
 - Book
 - 中文文档
 - Docs
 - GitHub repository
 - Cargo package
 - Minimum supported Rust version: 1.54.0 or later
 
This crate uses #![forbid(unsafe_code)] to ensure everything is implemented in 100% Safe Rust.
- Fully supports async/await
 - Type safety
 - Rustfmt friendly (Procedural Macro)
 - Custom scalars
 - Minimal overhead
 - Easy integration (poem, actix_web, tide, warp, rocket ...)
 - Upload files (Multipart request)
 - Subscriptions (WebSocket transport)
 - Custom extensions
 - Apollo Tracing extension
 - Limit query complexity/depth
 - Error Extensions
 - Apollo Federation
 - Batch Queries
 - Apollo Persisted Queries
 
This crate offers the following features, all of which are not activated by default:
apollo_tracing: Enable the Apollo tracing extension.apollo_persisted_queries: Enable the Apollo persisted queries extension.log: Enable the logger extension.tracing: Enable the tracing extension.opentelemetry: Enable the OpenTelemetry extension.unblock: Support asynchronous reader for Uploadbson: Integrate with thebsoncrate.chrono: Integrate with thechronocrate.chrono-tz: Integrate with thechrono-tzcrate.url: Integrate with theurlcrate.uuid: Integrate with theuuidcrate.string_number: Enable the StringNumber.dataloader: Support DataLoader.secrecy: Integrate with thesecrecycrate.decimal: Integrate with therust_decimalcrate.cbor: Support for serde_cbor.
Apollo Studio is a cloud platform that helps you build, monitor, validate, and secure your organization's data graph. An existing extension is available for this crate here
All examples are in the sub-repository, located in the examples directory.
Run an example:
git submodule update # update the examples repo
cd examples && cargo run --bin [name]- Poem async-graphql-poem
 - Actix-web async-graphql-actix-web
 - Warp async-graphql-warp
 - Tide async-graphql-tide
 - Rocket async-graphql-rocket
 - Axum async-graphql-axum
 
About actix-web-v4: The beta version is supported in the branch actix-web-beta Related Issue
- rust-actix-graphql-sqlx-postgresql Using GraphQL with Rust and Apollo Federation
 - entity-rs A simplistic framework based on TAO, Facebook's distributed database for Social Graph.
 - vimwiki-server Provides graphql server to inspect and manipulate vimwiki files.
 - Diana Diana is a GraphQL system for Rust that's designed to work as simply as possible out of the box, without sacrificing configuration ability.
 - cindythink
 
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.
 
- GraphQL
 - GraphQL Multipart Request
 - GraphQL Cursor Connections Specification
 - GraphQL over WebSocket Protocol
 - Apollo Tracing
 - Apollo Federation
 
Welcome to contribute !