NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #1747 most downloaded on crates.io
GraphQL value for async-graphql
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
Nothing withdrawn
no release was ever pulled
6 years old
150 releases · first in 2020
One column per quarter.
on_connection_init takes FnOnce instead of Fn #1022
on_connection_init takes FnOnce instead of Fn #1022Add tracing to dataloader methods when the tracing feature is enabled. #996
Limit parser recursion depth to 64.
64.Limit execution recursion depth to 32 by default.
32 by default.Fix serializing of JSON default values #969
Bump Actix-web from 4.0.1 to 4.1.0
Custom error type in axum request extractor #945
Expose Edge::node to allow better testing. #933
Add Schema::build_with_ignore_name_conflicts method to specifies a list to ignore type conflict detection.
Schema::build_with_ignore_name_conflicts method to specifies a list to ignore type conflict detection.Implement the ConnectionNameType and EdgeNameType traits to specify GraphQL type names for Connection and Edge, which can be automatically generated u
ConnectionNameType and EdgeNameType traits to specify GraphQL type names for Connection and Edge, which can be automatically generated using DefaultConnectionName and DefaultEdgeName.#[non_exhaustive] attribute to Request/Response types.introspection-only mode. #894bson-uuid feature to implement ScalarType for bson::Uuid. #875regex crate from 1.4.5 to 1.5.5. #862chrono-tz crate from 0.5.3 to 0.6.1. #831log to version 0.4.16. #903CursorType for floats #897OutputType for tokio::sync::RwLock and tokio::sync::Mutex. #896uuid to 1.0.0. #907ExecuteDocument in APQ. #919OneofObject restriction on inner types being unique. #923Nothing published for this version
Nothing published for this version
Nothing published for this version
Update Axum integration to Axum 0.5.1 #883
Panics when the same Rust type has the same name. #880
Generate @deprecated to SDL. #874
Make HashMap more generics for InputOutput and OutputType.
Export @oneOf directive to SDL when Oneof type is defined. #766
@oneOf directive to SDL when Oneof type is defined. #766Add support for oneof field on object. #766
Add OneOfObject macro to support for oneof input object.
OneOfObject macro to support for oneof input object.4.0.0-rc.2 to 4.0.0-rc.3.Implement ScalarType for time::Date. #822
ScalarType for time::Date. #822Pass context to resolvers with flatten attribute. #813
ComplexObject and InputObject.Actix-web from 4.0.0-beta.19 to 4.0.0-rc.2.Implement InputType and OutputType for Box<[T]> and Arc<[T]>. #805
InputType and OutputType for Box<[T]> and Arc<[T]>. #805Fix possible stack overflow in validator, thanks @quapka.
Add skip_input attribute to InputObject macro, skip_output attribute to SimpleObject macro.
skip_input attribute to InputObject macro, skip_output attribute to SimpleObject macro.Fixed some integrations overwritten HTTP headers. #793
Remove 'static bound for impl From for Error.
'static bound for impl From<T> for Error.Allow the deprecation attribute to have no reason.
0.11.2 to 0.12.0.InputType for Box<str> and Arc<str>. #792time crate's datetime types. #791DataContext trait. #786flatten attribute for SimpleObject, ComplexObject and Object macros. #533Union and Interface support for trait objects. #780lru to 0.7.1. #773indexmap version to 1.6.2. #7764.0.0-beta.18 to 4.0.0-beta.19.SimpleObject can't define the lifetimes. #774InputType / OutputType support for hashbrown crate.4.0.0-beta.14 to 4.0.0-beta.18. #768_Entity should not be sent if empty as it's in conflict with GraphQL Union type validation #765.ComplexObject. #7671.2.2.1.2.1.4.0.0-beta.11 to 4.0.0-beta.14.0.3 to 0.4.InputType and OutputType for HashMap and BTreeMap.BatchRequest.
Option<Vec<T>>.Option<Vec<T>>.#[graphql(validator(list))] no longer applies to max_items and min_items.InputValue/OutputValue for serde_json::Value.SmolStr via a feature. #730isRepeatable field to __Directive - [GraphQL - October 2021]OutputJson because Json can replace it.Option<T>, MaybeUnefined<T>.GraphQLWebSocket::new use generic stream.GraphQLWebSocket::new_with_pair method.url, regex and ip validators.ctx parameter of CustomValidator::check. #710connection::query function to allow the callback to use any type that implements Into<Error>.ResolverError and use Error::new_with_source instead.ErrorExtensionValues::unset method.SimpleObject macro and the InputObject macro at the same time.async-graphql-tide.EmptyMutation may cause when used in MergedObject. #694chrono::Duration custom scalar. #689From<Option<Option<T>>> for MaybeUndefined<T>.MaybeUndefined::as_opt_ref, MaybeUndefined::as_opt_deref, MaybeUndefined::map, MaybeUndefined::map_value, MaybeUndefined::contains, MaybeUndefined::contains_value, and MaybeUndefined::transpose methods.MaybeUndefined::is_undefined, MaybeUndefined::is_null, MaybeUndefined::is_value, MaybeUndefined::value and MaybeUndefined::as_opt_ref const.ResolverError type. #6710.2.5 to 0.3.Context.2021 edition.specified_by_url for Tz, DateTime<Tz>, Url, Uuid and Upload scalars.1.0.13.0.6.6 to 1.0.7.Default for ID #659.ScalarType for bson::Bson and bson::Document. #661CharsMinLength and CharsMaxLength validators. #656Subscription macro to work on Rust 2021. #665visible macro argument for union type. #655DataLoader::enable_all_cache and DataLoader::enable_cache methods. #642chain and race guards. #614error to info. #518graphql-ws pings. #635websocket for async-graphql-tide. #636Value conversion. #617ScalarType for HashMap/BTreeMap to use ToString/FromStr. #585Axum integration. async-graphql-axumFrom<MaybeUndefined<T>> for Option<Option<T>>. #599GraphQLPlaygroundConfig::with_setting to accept impl Into<Value> #583ConstValue and Value. #569OutputType for Bytes.TryFrom<&[SelectionField<'a>]> for Lookahead<'a>. #575list attribute to the input value validator. #579ComplexObject. #562From<SelectionField> for Lookahead. #557rust_decimal crate) #559ResolveInfo. #551MergedObject may cause panic. #539Bump upstream crate bson from v1.2.0 to v2.0.0-beta.1. #516
Add serial attribute for Object, SimpleObject and MergedObject macros. #539
Remove the static constraint of the receive_body and receive_batch_body functions. #544
Implement InputType and OutputType for [T; N] array.
Add support for returning multiple resolver errors. #531
Bump upstream crate multer from v1.2.2 to v2.0.0.
Aligned NaiveDateTime formatting with DateTime. #535
Allow the ability to set GraphQL Playground settings. #508
WebSocket is now generic in graphql_subscription_upgrade functions. #530
Removed Copy trait from initializer in graphql_subscription_with_data. #530
If InputObject contains an unnamed field, the correct error message will be given. #498
Added Websocket::with_message_stream for client message customization. #501
Added the Secret type using secrecy crate.
ComplexObject macro cannot work due to the secret attribute.Result type, E can be all types that implement async_graphql::Into<Error>.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!()
}
}
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.BuildHasher generic parameter to dataloader::HashMapCache to allow custom hashing algorithms. #455ScalarType for serde_json::Value.SelectionField::alias and SelectionField::arguments methods.SchemaBuilder::override_name method. #437name and visible attributes for Newtype macro for define a new scalar. #437NewType macro now also implements From<InnerType> and Into<InnerType>.Request::disable_introspection method. #456start before connection_init, the connection will be immediately disconnected and return 1011 error. #451extension::OpenTelemetry.TracingConfig, now Request span always takes the current span as the parent, so this option is no longer needed.multipart feature.SchemaBuilder::enable_subscription_in_federation method. #449DataLoader::loader method. #441extends attribute for derive macros Subscription and MergedSubscription.SchemaBuilder::override_name method. #437_entity requests in parallel. #431Variables from async_graphql::context::Variables to async_graphql::Variables.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,
}
Context::data function is too small.FIELD_DEFINITION and ENUM_VALUE cannot be parsed.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
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
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
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 →