PackageTrack
Sign in Get early access

async-graphql

A GraphQL server library implemented in Rust

7.2.1 31M downloads/mo #1651 most downloaded on crates.io async-graphql/async-graphql

What this package is like to depend on

Last release 4 months ago

21 Apr 2026

Release timing varies

gaps range from 2 weeks to 7 months

Some releases are documented

notes for 150 of 395 stable releases

1 version withdrawn

withdrawn after publishing

6 years old

441 releases · first in 2020

10 releases in the last 12 months

see the full history below

Release timeline

441 releases · Mar 2020 to Apr 2026
2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 60 of 441
  1. 8.0.0-rc.5 21 Apr 2026 pre-release
    Release notes

    Merge branch 'master' into release

    Open source →
    Release notes
    • Fix MergedObject exceeding compiler recursion limit by using flat dispatch instead of nested async delegation in resolve_field/find_entity, which overflows when cross-crate types amplify monomorphization depth
    • Replace mdbook test with cargo test --doc via a book-tests crate to fix E0464 duplicate rlib errors in CI #1794
    • Add option to restrict potential DoS vector #1822
    Open source →
  2. 8.0.0-rc.4 08 Mar 2026 pre-release
    Release notes
    • Fix MergedObject/MergedSubscription exceeding compiler recursion limit with 130+ merged types by using balanced binary tree instead of linear chain #1813
    • Replace deprecated actix-web-actors with actix-ws in the Actix integration #1811
    • Fix InputObject with generics failing to compile when using name_type attribute #1812
    • feat: Adds flatten support for generic type params in InputObject #1804
    Open source →
  3. 8.0.0-rc.3 19 Feb 2026 pre-release
    Release notes
    • Fix GraphQL spec violation for data entry when the execution result contains errors #1806
    • Prevent inlininte of resolve_field helpers to avoid stack overflows #1802
    Open source →
  4. 8.0.0-rc.2 04 Feb 2026 pre-release
    Release notes
    • Change response errors to be serialized before data #1793
    • Remove custom-error-conversion feature. Use the ErrorExtensions trait
    • Make unblock feature unconditional when using tempfile #1797
    • Rework codegen for massive code size + check/compile time improvements #1796
    • Remove email validator (use newtype from async-graphql-extras) #1798
    • Remove URL validator (use Url type from url) #1798
    • Remove IP validator (use the IpAddr type from std) #1798
    • Add clear_one function to the DataLoder #1799
    Open source →
  5. 8.0.0-rc.1 22 Jan 2026 pre-release
    Release notes
    • Replace mutexes with lock-free data structures
    • Replace fnv with rustc-hash for faster hashing on 64-bit architectures
    • Remove allocations from Delay impl
    • Delete tide integration (it's been umaintained for a while, just like async-std)
    • Replace Inflector with heck (for real this time) #1785
    • Remove CBOR feature #1786
    • Remove BSON integration #1786
    • Remove hashbrown integration #1786
    • Remove tokio-sync feature #1786
    • Remove uuid-validatorfeature #1786
    • Remove zxcvbn integration #1786
    • Remove smol_str integration #1786
    • Remove bigdecimal integration #1786
    • Remove Altair integration #1791
    • Remove GraphQL Playground integration #1791
    • Upgrade GraphiQL to v5 #1791
    • Abstract over timers and spawn methods #1789
    • Upgrade warp integration to v0.4
    • Move OpenTelemetry to extras crate and upgrade #1792
    Open source →
  6. 7.2.1 20 Jan 2026

    Nothing published for this version

  7. 7.2.0 16 Jan 2026
    Release notes
    • fix: Use runtime timers when available #1780
    • Fix validation failure with variables in multiple operations #1669
    • Add trace_scalars option to Tracing and OpenTelemetry extensions #1781
    • Macro hygiene #1782
    • Add jiff support #1778
    Open source →
  8. 7.1.0 02 Jan 2026
    Release notes
    • Replace async-stream in favour of asynk-strim
    • Add From<Option<T>> for ConstValue #1739
    • Don't bail early on first error when resolving containers #1746
    • Allow accessing data on schema level #1727
    • Mark generated interface methods as allowing missing docs #1730
    • Tracing support for subscriptions of the axum integration #1667
    Open source →
  9. 7.0.19 01 Jan 2026
    Release notes
    • Revert heck migration (breaks current schemas)
    Open source →
  10. 7.0.18 01 Jan 2026
    Release notes
    • update MSRV to 1.89.0
    • Fix DataLoader with tracing #1749
    • Fix clippy lints #1770
    • Upgrade hashbrown to 0.16 #1771
    • Upgrade zxcvbn to 3.1 #1771
    • Upgrade lru to 0.16 #1771
    • Upgrade handlebars to 6.3 #1771
    • Upgrade schemars to 1.2 #1771
    • Upgrade darling to 0.23
    • Upgrade strum to 0.27
    • Upgrade criterion to 0.8
    • Move from Inflector to heck (since Inflector is archived) #1732
    • Remove double boxing from subscription streams #1736
    • Fix unblock feature without tempfile #1718
    • Upgrade thiserror to 2.0
    Open source →
  11. 7.0.17 24 May 2025
    Release notes
    • update MSRV to 1.86.0
    • Allow exporting SDL with spaces #1688
    • Update GraphiQLSource to use React v18 #1705
    • fix: generate description of directives. #1681
    • feat: add @requiresScopes support #1695
    • chore: fix clippy and fmt errors #1713
    • use preferred mime-type #1714
    • Add GraphiQLSource version #1704
    Open source →
  12. 7.0.16 20 Mar 2025
    Release notes
    • dynamic: fixed __typename always returned null when introspection was disabled.
    • update MSRV to 1.83.0
    Open source →
  13. 7.0.15 03 Feb 2025
    Release notes
    • feat: Add custom-error-conversion feature #1631
    • Update graphql annotation directive property to support paths #1663
    Open source →
  14. 7.0.14 22 Jan 2025
    Release notes
    • Update error messages for character length validation #1657
    • Upgrade to axum v0.8 #1653
    • Fix position calculator for unicode symbols #1648
    Open source →
  15. 7.0.13 10 Dec 2024
    Release notes
    • add support introspection inputValueDeprecation #1621
    Open source →
  16. 7.0.12 08 Dec 2024
    Release notes
    • update MSRV to 1.83.0
    • Add specified complexity for fields in SimpleObject.
    • feat: expose SDL export utilities in ExtensionContext #1606
    • feat(dynamic-schema): specify type directives in schema #1607
    • Make http2 optional for actix #1612
    • chore: use std OnceLock instead LazyLock #1613
    • Add UUID validator #1588
    • Update secrecy and support new types #1627
    • fix #1626
    • Allow non-native concrete types in generic structs deriving SimpleObject + InputObject #1629
    • chore: update opentelemetry to 0.27 #1614
    • connection: Allow 'first' and 'last' parameters to exist at the same time #1602
    • feat(dynamic-schema): specify type directives in schema #1607
    • Make boxed_any and borrowed_any for FieldValue work with trait objects again #1636
    • Add new altair option #1642
    • Fix Clippy for latest stable #1639
    • Add boxed-trait feature #1641
    • Support directive in complex object #1644
    Open source →
  17. 7.0.11 26 Sep 2024
    Release notes
    Open source →
  18. 7.0.10 24 Sep 2024
    Release notes
    • add SchemeBuilder.limit_directives method to set the maximum number of directives on a single field.
    • remove needless ?Sized #1593
    • fix: generate each variant description correctly. #1589
    • Make From<T> for [Error] set source #1561
    • feat(graphiql): add support for WS connection params #1597
    Open source →
  19. 7.0.9 02 Sep 2024
    Release notes
    • add on_ping callback to WebSocket
    Open source →
  20. 7.0.8 01 Sep 2024
    Release notes
    • chore: Make Extensions nullable #1563
    • expose rejection in async_graphql_axum #1571
    • Updated crate time to 3.36, as it fixes a compilation error in rust 1.80 #1572
    • Impl Debug for dynamic::FieldValue & Improve error messages for its methods #1582
    • Support scraping #[doc = ...] attributes when generating descriptions #1581
    • add Websocket::keepalive_timeout method to sets a timeout for receiving an acknowledgement of the keep-alive ping.
    Open source →
  21. 7.0.7 14 Jul 2024
    Release notes
    • Support raw values from serde_json #1554
    • The custom directive ARGUMENT_DEFINITION is not being output at the appropriate location in SDL #1559
    • Support for JSON extended representations of BSON ObjectId and Uuid #1542
    • feat: get directives from SelectionField #1548
    • Support Directives on Subscriptions #1500
    • fix subscription err typo #1556
    Open source →
  22. 7.0.6 08 Jun 2024
    Release notes
    • add license files to each project #1523
    • Improve alignment of directive behavior with GraphQL spec #1524
    • dynamic schema: pass default vals to ResolverContext #1527
    • Add altair source #1530
    • feat: Add support for using Interface and OneofObject on the same struct #1534
    Open source →
  23. 7.0.5 09 May 2024
    Release notes
    • Fix compiler and clippy warnings #1501
    • Added support for deploying to wasm targets with axum - (without subscriptions) #1517
    • Bump opentelemetry (0.21.0 -> 0.22.0) #1513
    • Update lru dependency #1504
    • Support TypeDirective for ArgumentDefinition, Enum, EnumValue, InputFieldDefinition, InputObject, Interface #1509
    • Add display attribute for Enum macro #1518
    Open source →
  24. 7.0.3 16 Mar 2024
    Release notes
    • Sort schema fields & enums if required #1475
    • Change the type_name of EmptySubscription fix #1435 #1475
    • add Request::set_parsed_query method #1483
    • Upgrade strum to 0.26 #1485
    • Fix validation of non-nullable variables with default values #1491
    • add NextExecute::run_with_data method to attach context data before execution
    • feat: add registry method in dynamic::Registry #1492
    • Allow non-scalars to be used as directive arguments #1493
    • fix: add description to __schema introspection result #1489
    Open source →
  25. 7.0.2 18 Feb 2024
    Release notes
    • Fix #[derive(OneofObject)] rejecting enums where the type comes from a macro substitution #1473
    • Optimize object proc-macro codegen #1470
    • Use impl Future instead of async-trait in most traits. #1468
    • Upgrade base64 to 0.21 #1466
    • Standardize space between Args, Lists and Binary items #1392
    • feat: support bigdecimal 0.4.x #1358
    Open source →
  26. 7.0.1 21 Jan 2024
    Release notes
    • Add Shareable Attribute To InputObjectField #1459
    • Feature Generic Unions #1424
    • Address axum integration compilation error with non-Sync body #1460
    • fix: date cursor precision string format #1462
    Open source →
  27. 7.0.0 06 Jan 2024
    Release notes
    • upgrade to http1
    • Feature extend ResolveInfo with field attribute #1428
    Open source →
  28. 6.0.11 19 Nov 2023
    Release notes
    • Clean up example docs #1411
    • Run batch requests concurrently #1420
    • Update opentelemetry to v0.21.x #1422
    Open source →
  29. 6.0.10 04 Nov 2023
    Release notes
    • bump opentelemetry 0.20.0 #1406
    • fix check for serial #1405
    • fixes complexity visitor
    • bump Rocket from 0.5.0-rc.2 to 0.5.0-rc.4
    Open source →
  30. 6.0.9 21 Oct 2023
    Release notes
    • add support uploading files in dynamic schema #1384
    • Include @composeDirective in Federation's _service field and document #[TypeDirective] #1400
    Open source →
  31. 6.0.7 23 Sep 2023
    Release notes
    • initialize source field in tracing extension parse_query method #1367
    • test(variables): empty object passes but empty array fails #1377
    • Add support for entities without a reference resolver #1378
    • Fixes #1356
    Open source →
  32. 6.0.6 07 Sep 2023
    Release notes
    • fixed SDL formatting for resolver argument comments regressed #1363
    Open source →
  33. 6.0.5 01 Sep 2023
    Release notes
    • Implement exporting argument documentation #1352
    • Add ValueAccessor::as_value and ListAccessor::as_values_slice methods #1353
    • dynamic: fixes key not found when using entity resolver #1362
    • fix panic in complexity visitor #1359
    • update MSRV to 1.70.0
    Open source →
  34. 6.0.4 20 Aug 2023
    Release notes
    • Parse "repeatable" in directive definitions. #1336
    • add support multipart/mixed request. #1348
    • async-graphql-actix-web: add GraphQL handler.
    • async-graphql-axum: add GraphQL service.
    Open source →
  35. 6.0.3 15 Aug 2023
    Release notes
    • dynamic: fix the error that some methods of XXXAccessor return reference lifetimes that are smaller than expected.
    • dynamic: no longer throws an error if the Query object does not contain any fields but the schema contains entities.
    • chore: make accessors public and reexport indexmap #1329
    • feat: added OutputType implementation for std::sync::Weak #1334
    Open source →
  36. 6.0.1 02 Aug 2023
    Release notes
    • dynamic: remove TypeRefInner
    • update MSRV to 1.67.0
    Open source →
  37. 6.0.0 29 Jul 2023
    Release notes
    • Bump syn from 1.0 to 2.0
    • Bump darling from 0.14 to 0.20
    • Bump indexmap from 1.6.2 to 2
    • Attributes guard, process_with, complexity support expression or string as value #1295
    • Schema (type) level directive support with optional support of federation composeDirective #1308
    • Add support for generic structs derriving InputObject and SimpleObject #1313
    • chore: trim up some unnecessary code #1324
    • Adds Dataloader::get_cached_values method to the dataloader cache so that callers can access the contents of the cache without knowing the keys. #1326

    Breaking Changes

    • Since syn 2.0 no longer supports keywords as meta path, rename the parameter used to specify interface field types from type to ty.

      https://github.com/dtolnay/syn/issues/1458 https://github.com/TedDriggs/darling/issues/238

    #[derive(Interface)]
    #[graphql(field(name = "id", ty = "&i32"))] // rename from type to ty
    enum Node {
        MyObj(MyObj),
    }
    
    • Change the parameter location of the macro Directive to PascalCase
    // #[Directive(location = "field")]
    #[Directive(location = "Field")]
    pub fn lowercase() -> impl CustomDirective {
        LowercaseDirective
    }
    
    Open source →
  38. 5.0.10 07 Jun 2023
    Release notes
    • Upgrade opentelemetry to 0.19.0 #1252
    • Remove internal CursorScalar type and expose Edge::cursor member #1302
    Open source →
  39. 5.0.9 25 May 2023
    Release notes
    • Prevent input check stack overflow #1293
    • Change batch requests to run concurrently #1290
    Open source →
  40. 5.0.8 09 May 2023
    Release notes
    • Improve documentation on Dataloader #1282
    • Prevent recursive input type checking from hitting stack overflow #1284
    • update MSRV to 1.65.0
    Open source →
  41. 5.0.7 25 Mar 2023
    Release notes
    • Disable default-features in workspace.dependencies #1232
    • Copy edit extensions section of The Book #1234
    • disable default features for async-graphql in workspace dependencies #1237
    • chore: make edge field and connection field shareable #1246
    • Added 3 new fns to the ObjectAccessor. #1244
    • Dataloader futures lose span context #1256
    • Propagate ErrorExtensionValues when calling InputValueError.propagate #1257
    • Correct error string for object in ValueAccessor #1260
    Open source →
  42. 5.0.6 11 Feb 2023
    Release notes
    • docs: Tweak dataloader example and link to full example #1194
    • docs: Mention the importance of using dataloader with federation/entities #1194
    • chore: enable GraphiQL/Playground via feature flag #1202
    • fix: Export directives to federation SDL so they can be composed. #1209
    • Fix doc contents details and add AutoCorrect lint to CI. #1210
    • fix: provide correct type for _service with dynamic schema #1212
    • feat(subscription): support generics in MergedSubscription types #1222
    • feat: modify Connection to allow optionally disable nodes field in gql output. #1218
    • fixes interface type condition query #1228
    • fixes #1226
    • update MSRV to 1.64.0
    Open source →
  43. 5.0.5 03 Jan 2023
    Release notes
    • dynamic schema: add boxed_any function #1179
    • Improve GraphiQL v2 #1182
    • Fix: **Type.oneOf to **Type.isOneOf #1188
    • Implement From<ID> for ConstValue #1169
    • Fixes #1192
    Open source →
  44. 5.0.4 17 Dec 2022
    Release notes
    • Fix named_list_nn #1172
    • Add DynamicRequestExt::root_value to specify the root value for the request
    • Change CustomValidator::check returns error type from String to InputValueError<T>.
    • Add support that custom validators can set error extensions. #1174
    Open source →
  45. 5.0.3 07 Dec 2022
    Release notes
    Open source →
  46. 5.0.2 30 Nov 2022
    Release notes
    Open source →
  47. 5.0.1 29 Nov 2022
    Release notes
    • Add boolean dynamic ValueAccessor method #1153
    Open source →
  48. 5.0.0 28 Nov 2022
    Release notes
    • Update MSRV to 1.60.0
    • [async-graphql-axum] bump axum from 0.5.1 to 0.6.0 #1106
    Open source →
  49. 5.0.0-alpha.5 21 Nov 2022 pre-release
    Release notes
    • Fixes #1138
    • Fixes #1140
    • Add dynamic::Scalar::validator method to set value validator.
    Open source →
  50. 5.0.0-alpha.4 12 Nov 2022 pre-release
    Release notes
    • Add support to federation(v2) for dynamic schema
    Open source →
  51. 5.0.0-alpha.3 11 Nov 2022 pre-release
    Release notes
    • Simplified way to create type reference dynamic::TypeRef
    Open source →
  52. 5.0.0-alpha.2 11 Nov 2022 pre-release
    Release notes
    • Keep object 'implements' order stable in SDL export #1142
    • Fix regression on ComplexObject descriptions #1141
    Open source →
  53. 5.0.0-alpha.1 10 Nov 2022 pre-release
    Release notes
    • Add support for dynamic schema
    • Add tempfile feature, enabled by default
    Open source →
  54. 4.0.16 20 Oct 2022
    Release notes
    • Add credentials to GraphiQL 2 #1105
    • Add TypeName support for InputObject #1110
    • Fix error message #1058
    • Add TypeName support for Enum, Union, OneofInputObject, Subscription, MergedObject, MergedSubscription, Scalar, Interface, Directive
    • Fixes #1052
    • Implement CustomValidator<T> for F: Fn(&T) -> Result<(), E: Into<String>>
    • Add validator attribute to InputObject macro #1072
    Open source →
  55. 4.0.15 07 Oct 2022
    Release notes
    • Dynamic Document Title for GraphiQL v2 and GraphQL Playground #1099
    • Skip tracing for introspection queries. #841
    • Add SchemaBuilder::disable_suggestions method to disable field suggestions. #1101
    Open source →
  56. 4.0.14 26 Sep 2022
    Release notes
    • Implement a simple approach to using the link directive. #1060
    • docs: Update federation docs with examples of each directive. #1080
    • Add support for parse request from query string. #1085
    Open source →
  57. 4.0.13 09 Sep 2022
    Release notes
    • Compare to expected schema #1048
    • docs: readme flair #1054
    • Remove bson-uuid feature #1032
    • Add no_cache for cache_control attribute #1051
    • Resurrect code generation through tests #1062
    • Support for primitive type in CursorType #1049
    • Add SDLExportOptions::include_specified_by method to enable specifiedBy directive #1065
    Open source →
  58. 4.0.12 29 Aug 2022
    Release notes
    • Update MSRV to 1.59.0
    • Support @specifiedBy directive in SDL export #1041
    • Add GraphiQL v2 #1044
    • Export SDL: consistently avoid trailing spaces #1043
    Open source →
  59. 4.0.11 24 Aug 2022
    Release notes
    • Define override directive on fields #1029
    • Add @tag support #1038
    • Export SDL: avoid trailing space for scalar definitions #1036
    • Fixes #1039
    Open source →
  60. 4.0.10 19 Aug 2022
    Release notes
    • Fixes extension request.data(X) being lost in the resolver #1018
    • Add Apollo federation @shareable directive support #1025
    • Add Apollo Federation @inaccessible directive support #1026
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive