async-graphql

What async-graphql is
async-graphql is an open-source Rust library for building a self-hosted GraphQL server. It is designed to follow the GraphQL specification and supports both static and dynamic schemas. Schemas can be defined in Rust, with procedural macros generating code for queries. The library supports async/await and type safety, plus custom scalars, multipart file uploads, WebSocket subscriptions, batch queries, and custom and error extensions. Apollo support includes Persisted Queries, Tracing, and Federation v2. Integrations are provided for Poem, Actix-web, Warp, Rocket, and Axum. GraphiQL integration is enabled by default, while most other crate features are not. The crate forbids unsafe code and describes its implementation as safe Rust. It requires Rust 1.86.0 or later and is licensed under Apache License 2.0 or MIT, at the user's option. The project links to an Async-graphql Book and names organizations including Vector, DiveDB, Kairos Sports tech, and AxieInfinity among those using it in production. For production deployments, the project recommends limiting query complexity and depth to help reduce denial-of-service risk.
Who it suits
async-graphql suits Rust developers building self-hosted GraphQL services who want schema options, async support, and web-server integrations. It may also suit teams using Apollo features or GraphiQL.
What it does well
- Supports static and dynamic schemas
- Includes five web-server integrations
- Supports WebSocket subscriptions and multipart uploads
- Forbids unsafe code
What to know first
- Requires Rust 1.86.0 or later
- Most crate features are disabled by default
- Production query complexity and depth need limits
Getting started
- Visit the async-graphql project page on GitHub.
- Ensure your Rust version is 1.86.0 or later.
- Choose a provided web server integration, such as Axum or Actix-web.
- Review the Async-graphql Book linked from the project.
- For production, limit query complexity and depth as the project recommends.
Verdict
async-graphql offers broad GraphQL capabilities in a Rust server library, with multiple integrations and Apollo support. Developers should account for its Rust version requirement and configure query limits for production.
Questions
Does async-graphql cost anything?
It is free and open source. It is licensed under either Apache License 2.0 or MIT, at the user's option.
Where does async-graphql run?
Its deployment model is self-hosted. It is a server library implemented in Rust.
Which web frameworks does it integrate with?
Provided integrations are Poem, Actix-web, Warp, Rocket, and Axum.
Does it include an API explorer?
Yes. The crate's GraphiQL integration is enabled by default.
What Rust version does it require?
The minimum supported Rust version is 1.86.0.
Does it support Apollo?
Yes. It supports Apollo Persisted Queries, Apollo Tracing, and Apollo Federation v2.
Facts from async-graphql's own pages
- Apollo support
- The library lists Apollo Persisted Queries, Apollo Tracing, and Apollo Federation v2 support. · github.com, 9 Oct 2026
- Async and type safety
- The feature list includes async/await support and type safety. · github.com, 9 Oct 2026
- Documentation
- The project links to an Async-graphql Book describing the library as a Rust server-side library compatible with the GraphQL specification and most extensions. · async-graphql.github.io, 4 Oct 2026
- GraphiQL
- The crate's GraphiQL integration is enabled by default; most other crate features are not activated by default. · github.com, 4 Oct 2026
- GraphQL capabilities
- Listed capabilities include custom scalars, multipart file uploads, WebSocket subscriptions, batch queries, and custom extensions. · github.com, 9 Oct 2026
- Intended users
- The README lists Vector, DiveDB, Kairos Sports tech, AxieInfinity, and other projects as using async-graphql in production. · github.com, 9 Oct 2026
- License
- The project is licensed under either Apache-2.0 or MIT, at the user's option. · github.com, 9 Oct 2026
- Optional crate features
- Most crate features are disabled by default; the README names GraphiQL integration as the exception. · github.com, 9 Oct 2026
- Product
- async-graphql is a GraphQL server library implemented in Rust. · github.com, 9 Oct 2026
- Production query safety
- The project recommends limiting query complexity and depth in production to help avoid possible denial-of-service attacks. · github.com, 4 Oct 2026
- Purpose
- async-graphql is a high-performance, specification-compliant GraphQL server library implemented in Rust. · github.com, 4 Oct 2026
- Query capabilities
- Features include multipart file uploads, WebSocket subscriptions, batch queries, custom extensions, and error extensions. · github.com, 4 Oct 2026
- Rust requirement
- The minimum supported Rust version is 1.86.0 or later. · github.com, 9 Oct 2026
- Rust safety
- The crate forbids unsafe code and says it is implemented in 100% safe Rust. · github.com, 4 Oct 2026
- Safe Rust
- The crate forbids unsafe code and describes its implementation as 100% safe Rust. · github.com, 9 Oct 2026
- Schema definition
- You can define a schema in Rust, and procedural macros automatically generate code for a GraphQL query. · async-graphql.github.io, 9 Oct 2026
- Schema types
- Static and dynamic schemas are supported. · github.com, 9 Oct 2026
- Security guidance
- The README recommends limiting query complexity and depth in production to help avoid DDoS attacks. · github.com, 9 Oct 2026
- Specification support
- The library is fully compatible with the GraphQL specification and most of its extensions. · async-graphql.github.io, 9 Oct 2026
- Web server integrations
- Provided integrations are listed for Poem, Actix-web, Warp, Rocket, and Axum. · github.com, 9 Oct 2026
Where async-graphql stands on Freedom251
- GraphQL Tools#16 of 32