NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #1704 most downloaded on crates.io
A GraphQL server library implemented in Rust
Last release 5 months ago
21 Apr 2026
Release timing varies
gaps range from 2 weeks to 7 months
Nearly every release is documented
notes for 59 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
7 years old
441 releases · first in 2020
One column per quarter.
Implement ScalarType for bson::Bson and bson::Document. #661
Add visible macro argument for union type. #655
visible macro argument for union type. #655Add concrete names support for Object macro. #633
Add DataLoader::enable_all_cache and DataLoader::enable_cache methods. #642
Add support for graphql-ws pings. #635
Added Axum error handling. #629
Add support for serde_cbor. #619
Released `Axum` integration. `async-graphql-axum`
Axum integration. async-graphql-axumIgnore items flagged @skip in SelectionField and Lookahead. #605
Implement From > for Option >. #599
Change GraphQLPlaygroundConfig::with_setting to accept impl Into #583
Add binary types to ConstValue and Value. #569
ConstValue and Value. #569OutputType for Bytes.TryFrom<&[SelectionField<'a>]> for Lookahead<'a>. #575list attribute to the input value validator. #579Add Extensions in Error of InputValueValidator. #564
Add support for generic ComplexObject. #562
ComplexObject. #562Implement From for Lookahead. #557
Allows to get the actual field name and alias in ResolveInfo. #551
ResolveInfo. #551Fix the bug that MergedObject may cause panic. #539
MergedObject may cause panic. #539Bump upstream crate bson from v1.2.0 to v2.0.0-beta.1. #516
Allow field guards to support paths. #536
- Rework error propagation. #531
Add support for returning multiple resolver errors. #531
Allow the ability to set GraphQL Playground settings. #508
If InputObject contains an unnamed field, the correct error message will be given. #498
Fix the problem that the ComplexObject macro cannot work due to the secret attribute.
ComplexObject macro cannot work due to the secret attribute.Now when the resolver returns the Result type, E can be all types that implement async_graphql::Into .
Result type, E can be all types that implement async_graphql::Into<Error>.Fix stack overflow during Registry::create_type for recursive type while running Schema::build. #474
secret attribute for arguments, they will not appear in the log.#[Object]
impl Query {
async fn login(&self, username:String, #[graphql(secret)] password: String) -> i32 {
todo!()
}
}
Rework Extension, now fully supports asynchronous, better to use than before, and can achieve more features, it contains a lot of changes. _(if you do
Extension, now fully supports asynchronous, better to use than before, and can achieve more features, it contains a lot of changes. (if you don't have a custom extension, it will not cause the existing code to fail to compile)async_graphql_warp::graphql_protocol, async_graphql_warp::graphql_subscription_upgrade and async_graphql_warp::graphql_subscription_upgrade_with_data to control WebSocket subscription more finely.Add the BuildHasher generic parameter to dataloader::HashMapCache to allow custom hashing algorithms. #455
BuildHasher generic parameter to dataloader::HashMapCache to allow custom hashing algorithms. #455Nothing published for this version
Nothing published for this version
Add Request::disable_introspection method. #456
Request::disable_introspection method. #456Nothing published for this version
In websocket, if the client sends start before connection_init, the connection will be immediately disconnected and return 1011 error. #451
start before connection_init, the connection will be immediately disconnected and return 1011 error. #451- Fix docs.
Remove TracingConfig, now Request span always takes the current span as the parent, so this option is no longer needed.
extension::OpenTelemetry.TracingConfig, now Request span always takes the current span as the parent, so this option is no longer needed.multipart feature.Add SchemaBuilder::enable_subscription_in_federation method. #449
SchemaBuilder::enable_subscription_in_federation method. #449Fix tracing extension doesn't work with async code. #448
- Add ComplexObject macro.
Add DataLoader::loader method. #441
DataLoader::loader method. #441Support generics in Subscription types. #438
Remove unnecessary Box from WebSocket messages.
Execute _entity requests in parallel. #431
_entity requests in parallel. #431Add descriptions for the exported Federation SDL.
Moved Variables from async_graphql::Variables to async_graphql::Variables.
Variables from async_graphql::context::Variables to async_graphql::Variables.Allow the deprecation attribute to have no reason.
Allow the deprecation attribute to have no reason.
#[derive(SimpleObject)]
struct MyObject {
#[graphql(deprecation)]
a: i32,
#[graphql(deprecation = true)]
b: i32,
#[graphql(deprecation = false)]
c: i32,
#[graphql(deprecation = "reason")]
d: i32,
}
Fix the problem that the borrowing lifetime returned by the Context::data function is too small.
Context::data function is too small.When introspection is disabled, introspection related types are no longer registered.
Add support for Federation nested keys.
Fixed the error that the directive locations FIELD_DEFINITION and ENUM_VALUE cannot be parsed.
FIELD_DEFINITION and ENUM_VALUE cannot be parsed.### Fixed - Fixed #409
Add subscription support for tide with tide-websockets.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →