OSS TanbouSign in with GitHub

build type-safe GraphQL schemas, resolvers, and subscriptions in Rust

About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
3,682
Primary language
Rust
License
Apache-2.0
Repository last updated
Apr 21, 2026
On this page

Overview

async-graphql is a GraphQL server library for Rust. It supports static and dynamic schemas, asynchronous resolvers, subscriptions, uploads, DataLoader, Apollo Federation, and integrations with Poem, Axum, Actix Web, and other HTTP servers.

Features and best fit

Based on official documentation; not hands-on tested · Content checked:

Key features

Define GraphQL schemas and resolvers from Rust types and macros

Procedural macros such as Object map Rust types and methods to GraphQL objects and fields. Both static and dynamic schemas are supported, with async/await used for resolver execution.

Sources: [2]

Extend servers with subscriptions, DataLoader, and Federation

Features include WebSocket subscriptions, batch queries, DataLoader, persisted queries, Apollo Federation v2, and custom extensions. HTTP framework adapters are provided as separate integration crates.

Sources: [2]

Best fit

Fits Rust services adding a GraphQL execution layer to an existing HTTP stack

It integrates with Poem, Axum, Actix Web, Warp, Rocket, and other frameworks while keeping schema types and resolver implementations in Rust.

Sources: [2]

Before adoption

Enforce query limits and separate stable 7.2 from the 8.0 RC development line

The README recommends limiting query complexity, depth, and directives in production. The stable 7.2.1 Cargo manifest declares Rust 1.89, while the default branch is on the 8.0.0 RC line, so production adoption should distinguish stable APIs from RC breaking changes.

Sources: [2][3][4]

Official sources

  1. [1]async-graphql/async-graphql — GitHub repository(2026-10-06)
  2. [2]async-graphql 7.2.1 — README(2026-10-06)
  3. [3]async-graphql 7.2.1 — Cargo.toml(2026-10-06)
  4. [4]async-graphql — current development branch(2026-10-06)
Supplemental curator note

async-graphql models schemas through Rust types and procedural macros, then connects to servers such as Poem or Axum through integration crates. Production schemas should set explicit complexity, depth, and directive limits rather than accepting unbounded query cost.

Try it in 3 steps

  1. 1

    Clone the stable 7.2.1 source and examples

    Pin the commit recorded in the crates.io 7.2.1 package and initialize the matching official examples submodule.

    git clone https://github.com/async-graphql/async-graphql.git && cd async-graphql && git checkout 86a19327ec14e20b702de79b5a761fb735ac2428 && git submodule update --init
  2. 2

    Build the library

    Build the stable 7.2.1 source to verify the Rust toolchain and dependencies.

    cargo build
  3. 3

    Run the Axum Star Wars example

    Run the official Axum integration example and inspect the GraphQL schema and HTTP server integration.

    cd examples && cargo run --bin axum-starwars
Check the official README

Growth

Growth trends · Last 30 days

3,682 Stars

Trend data is still being collected.

Built with

Categories and tags

GitHub data

GitHub dataView detailed GitHub data

GitHub Topics

  • async-await
  • graphql
  • hacktoberfest
  • rust
  • rust-crate
  • rust-lang
  • server
Stars
3,682
Forks
536
Watchers
28
Open issues
255
Contributors
254
Owner type
Organization
Primary language
Rust
License
Apache-2.0
Repository last updated
Apr 21, 2026
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.

After reading this page, do you know what to do next?