diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
deleted file mode 100644
index a4a941e6d..000000000
--- a/.github/FUNDING.yml
+++ /dev/null
@@ -1 +0,0 @@
-github: sunli829
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
deleted file mode 100644
index 249d8ca51..000000000
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-name: 'Bug Report'
-about: 'Report a new bug'
-title: '
'
-labels: bug
----
-
-## Expected Behavior
-
-
-## Actual Behavior
-
-
-## Steps to Reproduce the Problem
-
-1.
-2.
-3.
-
-## Specifications
-
-- Version:
-- Platform:
-- Subsystem:
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
deleted file mode 100644
index cd10703bb..000000000
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-name: 'Feature Request'
-about: 'Report a new feature to be implemented'
-title: ''
-labels: enhancement
----
-
-## Description of the feature
-
-
-## Code example (if possible)
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md
deleted file mode 100644
index eb08e1042..000000000
--- a/.github/ISSUE_TEMPLATE/question.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-name: 'Question'
-about: 'If something needs clarification'
-title: ''
-labels: question
----
-
-
\ No newline at end of file
diff --git a/.github/workflows/book.yml b/.github/workflows/book.yml
deleted file mode 100644
index fbe390670..000000000
--- a/.github/workflows/book.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-name: Book
-
-on:
- push:
- branches:
- - release
- paths:
- - "docs/**"
-
-jobs:
- deploy_en:
- name: Deploy book on gh-pages
- runs-on: ubuntu-22.04
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- - name: Install mdBook
- uses: peaceiris/actions-mdbook@v1
- - name: Render book
- run: |
- mdbook build -d gh-pages docs/en
- mdbook build -d gh-pages docs/zh-CN
- mkdir gh-pages
- mv docs/en/gh-pages gh-pages/en
- mv docs/zh-CN/gh-pages gh-pages/zh-CN
- mv docs/index.html gh-pages
- - name: Deploy
- uses: peaceiris/actions-gh-pages@v4
- with:
- github_token: ${{ secrets.GITHUB_TOKEN }}
- allow_empty_commit: true
- keep_files: false
- publish_dir: gh-pages
- publish_branch: gh-pages
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
deleted file mode 100644
index bf9e6bdc3..000000000
--- a/.github/workflows/ci.yml
+++ /dev/null
@@ -1,187 +0,0 @@
-name: CI
-
-on:
- push:
- branches:
- - master
- pull_request:
- branches:
- - master
-
-jobs:
- tests:
- name: Run tests - Rust (${{ matrix.rust }}) on ${{ matrix.os }}
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- include:
- - { rust: stable, os: ubuntu-22.04 }
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- with:
- submodules: true
- - uses: dtolnay/rust-toolchain@stable
- with:
- toolchain: ${{ matrix.rust }}
- components: rustfmt
- - name: Extract metadata
- id: meta
- run: |
- FEATURES=$(cargo metadata --format-version=1 --no-deps | jq -r '.packages[] | select(.name == "async-graphql") | .features | keys | map(select(. != "boxed-trait")) | join(",")')
- echo "features=$FEATURES" >> "$GITHUB_OUTPUT"
- - name: Build with all features
- run: cargo build --all-features
- - name: Build with all features except boxed-trait
- run: cargo build --features ${{ steps.meta.outputs.features }}
- - name: Build
- run: cargo build --workspace --verbose
- - name: Run tests
- run: cargo test --workspace --features ${{ steps.meta.outputs.features }}
- - name: Clean
- run: cargo clean
-
- tests_min_compat:
- name: Run min rust version tests - Rust (${{ matrix.rust }}) on ${{ matrix.os }}
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- include:
- - { rust: 1.86.0, os: ubuntu-22.04 }
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- with:
- submodules: true
- - uses: dtolnay/rust-toolchain@stable
- with:
- toolchain: ${{ matrix.rust }}
- components: rustfmt
- - name: Extract metadata
- id: meta
- run: |
- FEATURES=$(cargo metadata --format-version=1 --no-deps | jq -r '.packages[] | select(.name == "async-graphql") | .features | keys | map(select(. != "boxed-trait")) | join(",")')
- echo "features=$FEATURES" >> "$GITHUB_OUTPUT"
- - name: Build with all features
- run: cargo build --all-features
- - name: Build with all features except boxed-trait
- run: cargo build --features ${{ steps.meta.outputs.features }}
- - name: Build
- run: cargo build --workspace --verbose
- - name: Run tests
- run: cargo test --workspace --features ${{ steps.meta.outputs.features }}
- - name: Clean
- run: cargo clean
-
- rustfmt:
- name: Run rustfmt - Rust (${{ matrix.rust }}) on ${{ matrix.os }}
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- include:
- - { rust: nightly-2025-04-09, os: ubuntu-22.04 }
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- with:
- submodules: true
- - uses: dtolnay/rust-toolchain@stable
- with:
- toolchain: ${{ matrix.rust }}
- components: rustfmt
- - name: Check format
- run: cargo +${{ matrix.rust }} fmt --all -- --check
- - name: Check examples format
- working-directory: ./examples
- run: cargo +${{ matrix.rust }} fmt --all -- --check
-
- clippy:
- name: Run clippy - Rust (${{ matrix.rust }}) on ${{ matrix.os }}
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- include:
- - { rust: stable, os: ubuntu-22.04 }
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- with:
- submodules: true
- - uses: dtolnay/rust-toolchain@stable
- with:
- toolchain: ${{ matrix.rust }}
- components: clippy
- - name: Check with clippy
- run: cargo clippy --all
-
- book_examples:
- name: Test book examples
- runs-on: ubuntu-22.04
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- with:
- submodules: true
- - uses: dtolnay/rust-toolchain@stable
- with:
- toolchain: stable
- - name: Install mdBook
- uses: peaceiris/actions-mdbook@v1
- with:
- mdbook-version: "0.4.49"
- - name: Extract metadata
- id: meta
- run: |
- FEATURES=$(cargo metadata --format-version=1 --no-deps | jq -r '.packages[] | select(.name == "async-graphql") | .features | keys | map(select(. != "boxed-trait")) | join(",")')
- echo "features=$FEATURES" >> "$GITHUB_OUTPUT"
- - name: Build with all features
- run: cargo build --workspace --features ${{ steps.meta.outputs.features }}
- - name: Run book tests for en language
- run: mdbook test -L target/debug/deps ./docs/en
- - name: Run book tests for zh-CN language
- run: mdbook test -L target/debug/deps ./docs/zh-CN
- - name: Clean
- run: cargo clean
-
- examples:
- name: Build examples - Rust (${{ matrix.rust }}) on ${{ matrix.os }}
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- include:
- - { rust: stable, os: ubuntu-22.04 }
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- with:
- submodules: true
- - uses: dtolnay/rust-toolchain@stable
- with:
- toolchain: ${{ matrix.rust }}
- components: clippy, rustfmt
- - name: Check examples with clippy
- run: cargo clippy --all
- working-directory: ./examples
- - name: Build examples
- run: cargo build --workspace --verbose
- working-directory: ./examples
- - name: Clean examples
- run: cargo clean
- working-directory: ./examples
-
- autocorrect:
- name: AutoCorrect Lint
- runs-on: ubuntu-latest
- steps:
- - name: Check source code
- uses: actions/checkout@v4
-
- - name: AutoCorrect
- uses: huacnlee/autocorrect-action@v2
- with:
- args: --lint --no-diff-bg-color docs/
diff --git a/.github/workflows/code-coverage.yml b/.github/workflows/code-coverage.yml
deleted file mode 100644
index 7dbc64b3f..000000000
--- a/.github/workflows/code-coverage.yml
+++ /dev/null
@@ -1,35 +0,0 @@
-name: Code Coverage
-
-on:
- push:
- branches:
- - master
-
-jobs:
- cover:
- runs-on: ubuntu-22.04
- env:
- CARGO_TERM_COLOR: always
- steps:
- - uses: actions/checkout@v4
- - name: Install stable toolchain
- uses: dtolnay/rust-toolchain@stable
- with:
- toolchain: 1.86.0
- - name: Rust Cache
- uses: Swatinem/rust-cache@v2
- - name: Install cargo-llvm-cov
- uses: taiki-e/install-action@cargo-llvm-cov
- - name: Run cargo-tarpaulin
- run: cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info
- - name: Upload to codecov.io
- uses: codecov/codecov-action@v4
- with:
- token: ${{secrets.CODECOV_TOKEN}}
- files: lcov.info
- fail_ci_if_error: true
- - name: Archive code coverage results
- uses: actions/upload-artifact@v4
- with:
- name: code-coverage-report
- path: cobertura.xml
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
deleted file mode 100644
index 76f49d2a3..000000000
--- a/.github/workflows/release.yml
+++ /dev/null
@@ -1,74 +0,0 @@
-name: Release
-on:
- push:
- branches:
- - release
- paths:
- - "**/Cargo.toml"
- - ".github/workflows/release.yml"
-
-jobs:
- publish:
- runs-on: ubuntu-22.04
- strategy:
- fail-fast: false
- max-parallel: 1
- matrix:
- package:
- - name: async-graphql-value
- registryName: async-graphql-value
- path: value
- - name: async-graphql-parser
- registryName: async-graphql-parser
- path: parser
- - name: async-graphql-derive
- registryName: async-graphql-derive
- path: derive
- - name: async-graphql
- registryName: async-graphql
- path: .
- - name: async-graphql-actix-web
- registryName: async-graphql-actix-web
- path: integrations/actix-web
- - name: async-graphql-warp
- registryName: async-graphql-warp
- path: integrations/warp
- - name: async-graphql-poem
- registryName: async-graphql-poem
- path: integrations/poem
- - name: async-graphql-axum
- registryName: async-graphql-axum
- path: integrations/axum
- - name: async-graphql-rocket
- registryName: async-graphql-rocket
- path: integrations/rocket
- - name: async-graphql-tide
- registryName: async-graphql-tide
- path: integrations/tide
- steps:
- - uses: dtolnay/rust-toolchain@stable
- with:
- toolchain: stable
- - name: Checkout
- uses: actions/checkout@v4
- - name: get version
- working-directory: ${{ matrix.package.path }}
- run: echo PACKAGE_VERSION=$(sed -nE 's/^\s*version = "(.*?)"/\1/p' Cargo.toml) >> $GITHUB_ENV
- - name: check published version
- run: echo PUBLISHED_VERSION=$(cargo search ${{ matrix.package.registryName }} --limit 1 | sed -nE 's/^[^"]*"//; s/".*//1p' -) >> $GITHUB_ENV
- - name: cargo login
- if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
- run: cargo login ${{ secrets.CRATES_TOKEN }}
- - name: cargo package
- if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
- working-directory: ${{ matrix.package.path }}
- run: |
- cargo package
- echo "We will publish:" $PACKAGE_VERSION
- echo "This is current latest:" $PUBLISHED_VERSION
- - name: Publish ${{ matrix.package.name }}
- if: env.PACKAGE_VERSION != env.PUBLISHED_VERSION
- working-directory: ${{ matrix.package.path }}
- run: |
- echo "# Cargo Publish"
- cargo publish --no-verify
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 3a7306c44..000000000
--- a/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-/target
-Cargo.lock
-.idea
-.vscode
-.DS_Store
-node_modules
-
-benchmark/target
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index b0fb2eee0..000000000
--- a/.gitmodules
+++ /dev/null
@@ -1,3 +0,0 @@
-[submodule "examples"]
- path = examples
- url = https://github.com/async-graphql/examples
diff --git a/.nojekyll b/.nojekyll
new file mode 100644
index 000000000..e69de29bb
diff --git a/.rustfmt.toml b/.rustfmt.toml
deleted file mode 100644
index 364029d1d..000000000
--- a/.rustfmt.toml
+++ /dev/null
@@ -1,12 +0,0 @@
-edition = "2024"
-newline_style = "Unix"
-# comments
-normalize_comments = true
-wrap_comments = true
-format_code_in_doc_comments = true
-# imports
-imports_granularity = "Crate"
-group_imports = "StdExternalCrate"
-# report
-#report_fixme="Unnumbered"
-#report_todo="Unnumbered"
diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md
deleted file mode 100644
index e09b5fac1..000000000
--- a/ARCHITECTURE.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# async-graphql Architecture
-
-This document describes the internal architecture of `async-graphql`, and can be useful to
-people wanting to contribute.
-
-## Schema
-
-When you create a schema, the first thing it does it asks the query, mutation and subscription types
-to register themselves in the schema's list of GraphQL types called the **registry**. Those types
-will then recursively register all the types that they depend on in the registry, and so on until
-every single type that is used has been registered in the registry.
-
-## Query Execution
-
-First of all, `async-graphql` will use the `async-graphql-parser` crate (located in the `parser/`
-directory) to parse the request document source. This also performs some necessary validations
-such as making sure that operation (i.e. query/mutation/subscription) names are unique and that the
-query does not contain an anonymous operation as well as a named one.
-
-It then will validate the document as per the rest of GraphQL's validation rules. The `validation/`
-module handles this, and it works by walking through the entire document once and notifying the
-validation rules on the way to perform their validations and report errors if necessary. If
-`ValidationMode::Fast` is turned on, far far fewer rules are used.
-
-Also at this stage some non-validators use the same architecture, such as the query depth calculator
-which keeps track of how deeply nested the query gets as the document is walked through.
-
-At this point all the unnecessary operations (ones not selected by `operationName`) are dropped, and
-we will execute just one.
-
-At the core of all the resolver logic there are two traits: `InputType` and `OutputType`
-which represent a GraphQL input value and GraphQL output value respectively. `InputType` just
-requires conversions to and from `async_graphql::Value`. `OutputType` is an async trait with a
-single method, `resolve`, which takes a field (e.g. `user(name: "sunli829") { display_name }`) and
-resolves it to a single value.
-
-Scalars and enums are expected to ignore the input and serialize themselves, while objects,
-interfaces and unions are expected to read the selection set in the field and resolve and serialize
-each one of their fields.
-
-As implementing `OutputType::resolve` manually quickly becomes very tedious helpful utilities
-are provided in the `resolver_utils` module and via macros.
diff --git a/CHANGELOG.md b/CHANGELOG.md
deleted file mode 100644
index 02e5a3b25..000000000
--- a/CHANGELOG.md
+++ /dev/null
@@ -1,1044 +0,0 @@
-# Changelog
-All notable changes to this project will be documented in this file.
-
-The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
-and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
-# [7.0.17] 2025-05-24
-
-- update MSRV to `1.86.0`
-- Allow exporting SDL with spaces [#1688](https://github.com/async-graphql/async-graphql/pull/1688)
-- Update GraphiQLSource to use React v18 [#1705](https://github.com/async-graphql/async-graphql/pull/1705)
-- fix: generate description of directives. [#1681](https://github.com/async-graphql/async-graphql/pull/1681)
-- feat: add @requiresScopes support [#1695](https://github.com/async-graphql/async-graphql/pull/1695)
-- chore: fix clippy and fmt errors [#1713](https://github.com/async-graphql/async-graphql/pull/1713)
-- use preferred mime-type [#1714](https://github.com/async-graphql/async-graphql/pull/1714)
-- Add GraphiQLSource version [#1704](https://github.com/async-graphql/async-graphql/pull/1704)
-
-# [7.0.16] 2025-03-20
-
-- dynamic: fixed `__typename` always returned `null` when introspection was disabled.
-- update MSRV to `1.83.0`
-
-# [7.0.15] 2025-02-03
-
-- feat: Add `custom-error-conversion` feature [#1631](https://github.com/async-graphql/async-graphql/pull/1631)
-- Update graphql annotation directive property to support paths [#1663](https://github.com/async-graphql/async-graphql/pull/1663)
-
-# [7.0.14] 2025-01-22
-
-- Update error messages for character length validation [#1657](https://github.com/async-graphql/async-graphql/pull/1657)
-- Upgrade to axum v0.8 [#1653](https://github.com/async-graphql/async-graphql/pull/1653)
-- Fix position calculator for unicode symbols [#1648](https://github.com/async-graphql/async-graphql/pull/1648)
-
-# [7.0.13] 2024-12-10
-
-- add support introspection inputValueDeprecation [#1621](https://github.com/async-graphql/async-graphql/issues/1621)
-
-# [7.0.12] 2024-12-08
-
-- update MSRV to `1.83.0`
-- Add specified complexity for fields in `SimpleObject`.
-- feat: expose SDL export utilities in ExtensionContext [#1606](https://github.com/async-graphql/async-graphql/pull/1606)
-- feat(dynamic-schema): specify type directives in schema [#1607](https://github.com/async-graphql/async-graphql/pull/1607)
-- Make http2 optional for actix [#1612](https://github.com/async-graphql/async-graphql/pull/1612)
-- chore: use std OnceLock instead LazyLock [#1613](https://github.com/async-graphql/async-graphql/pull/1613)
-- Add UUID validator [#1588](https://github.com/async-graphql/async-graphql/pull/1588)
-- Update secrecy and support new types [#1627](https://github.com/async-graphql/async-graphql/pull/1627)
-- fix [#1626](https://github.com/async-graphql/async-graphql/issues/1626)
-- Allow non-native concrete types in generic structs deriving SimpleObject + InputObject [#1629](https://github.com/async-graphql/async-graphql/pull/1629)
-- chore: update opentelemetry to 0.27 [#1614](https://github.com/async-graphql/async-graphql/pull/1614)
-- connection: Allow 'first' and 'last' parameters to exist at the same time [#1602](https://github.com/async-graphql/async-graphql/pull/1602)
-- feat(dynamic-schema): specify type directives in schema [#1607](https://github.com/async-graphql/async-graphql/pull/1607)
-- Make boxed_any and borrowed_any for FieldValue work with trait objects again [#1636](https://github.com/async-graphql/async-graphql/pull/1636)
-- Add new altair option [#1642](https://github.com/async-graphql/async-graphql/pull/1642)
-- Fix Clippy for latest stable [#1639](https://github.com/async-graphql/async-graphql/pull/1639)
-- Add `boxed-trait` feature [#1641](https://github.com/async-graphql/async-graphql/pull/1641)
-- Support directive in complex object [#1644](https://github.com/async-graphql/async-graphql/pull/1644)
-
-# [7.0.11] 2024-09-26
-
-- fix [#1598](https://github.com/async-graphql/async-graphql/issues/1598)
-
-# [7.0.10] 2024-09-24
-
-- add `SchemeBuilder.limit_directives` method to set the maximum number of directives on a single field.
-- remove needless ?Sized [#1593](https://github.com/async-graphql/async-graphql/pull/1593)
-- fix: generate each variant description correctly. [#1589](https://github.com/async-graphql/async-graphql/pull/1589)
-- Make `From` for [Error] set source [#1561](https://github.com/async-graphql/async-graphql/pull/1561)
-- feat(graphiql): add support for WS connection params [#1597](https://github.com/async-graphql/async-graphql/pull/1597)
-
-# [7.0.9] 2024-09-02
-
-- add `on_ping` callback to `WebSocket`
-
-# [7.0.8] 2024-09-01
-
-- chore: Make Extensions nullable [#1563](https://github.com/async-graphql/async-graphql/pull/1563)
-- expose `rejection` in `async_graphql_axum` [#1571](https://github.com/async-graphql/async-graphql/pull/1571)
-- Updated crate `time` to `3.36`, as it fixes a compilation error in rust `1.80` [#1572](https://github.com/async-graphql/async-graphql/pull/1572)
-- Impl `Debug` for `dynamic::FieldValue` & Improve error messages for its methods [#1582](https://github.com/async-graphql/async-graphql/pull/1582)
-- Support scraping `#[doc = ...]` attributes when generating descriptions [#1581](https://github.com/async-graphql/async-graphql/pull/1581)
-- add `Websocket::keepalive_timeout` method to sets a timeout for receiving an acknowledgement of the keep-alive ping.
-
-# [7.0.7] 2024-07-14
-
-- Support raw values from serde_json [#1554](https://github.com/async-graphql/async-graphql/pull/1554)
-- The custom directive `ARGUMENT_DEFINITION` is not being output at the appropriate location in SDL [#1559](https://github.com/async-graphql/async-graphql/pull/1559)
-- Support for JSON extended representations of BSON ObjectId and Uuid [#1542](https://github.com/async-graphql/async-graphql/pull/1542)
-- feat: get directives from SelectionField [#1548](https://github.com/async-graphql/async-graphql/pull/1548)
-- Support Directives on Subscriptions [#1500](https://github.com/async-graphql/async-graphql/pull/1500)
-- fix subscription err typo [#1556](https://github.com/async-graphql/async-graphql/pull/1556)
-
-# [7.0.6] 2024-06-08
-
-- add license files to each project [#1523](https://github.com/async-graphql/async-graphql/issues/1523)
-- Improve alignment of directive behavior with GraphQL spec [#1524](https://github.com/async-graphql/async-graphql/pull/1524)
-- dynamic schema: pass default vals to ResolverContext [#1527](https://github.com/async-graphql/async-graphql/pull/1527)
-- Add [altair](https://github.com/altair-graphql/altair) source [#1530](https://github.com/async-graphql/async-graphql/pull/1530)
-- feat: Add support for using `Interface` and `OneofObject` on the same struct [#1534](https://github.com/async-graphql/async-graphql/pull/1534)
-
-# [7.0.5] 2024-05-09
-
-- Fix compiler and clippy warnings [#1501](https://github.com/async-graphql/async-graphql/pull/1501)
-- Added support for deploying to wasm targets with axum - (without subscriptions) [#1517](https://github.com/async-graphql/async-graphql/pull/1517)
-- Bump opentelemetry (0.21.0 -> 0.22.0) [#1513](https://github.com/async-graphql/async-graphql/pull/1513)
-- Update lru dependency [#1504](https://github.com/async-graphql/async-graphql/pull/1504)
-- Support TypeDirective for ArgumentDefinition, Enum, EnumValue, InputFieldDefinition, InputObject, Interface [#1509](https://github.com/async-graphql/async-graphql/pull/1509)
-- Add `display` attribute for Enum macro [#1518](https://github.com/async-graphql/async-graphql/issues/1518)
-
-# [7.0.3] 2024-03-16
-
-- Sort schema fields & enums if required [#1475](https://github.com/async-graphql/async-graphql/pull/1475)
-- Change the `type_name` of `EmptySubscription` fix [#1435](https://github.com/async-graphql/async-graphql/issues/1435) [#1475](https://github.com/async-graphql/async-graphql/pull/1475)
-- add `Request::set_parsed_query` method [#1483](https://github.com/async-graphql/async-graphql/pull/1483)
-- Upgrade strum to 0.26 [#1485](https://github.com/async-graphql/async-graphql/pull/1485)
-- Fix validation of non-nullable variables with default values [#1491](https://github.com/async-graphql/async-graphql/pull/1491)
-- add `NextExecute::run_with_data` method to attach context data before execution
-- feat: add registry method in dynamic::Registry [#1492](https://github.com/async-graphql/async-graphql/pull/1492)
-- Allow non-scalars to be used as directive arguments [#1493](https://github.com/async-graphql/async-graphql/pull/1493)
-- fix: add description to __schema introspection result [#1489](https://github.com/async-graphql/async-graphql/pull/1489)
-
-# [7.0.2] 2024-02-18
-
-- Fix `#[derive(OneofObject)]` rejecting enums where the type comes from a macro substitution [#1473](https://github.com/async-graphql/async-graphql/pull/1473)
-- Optimize object proc-macro codegen [#1470](https://github.com/async-graphql/async-graphql/pull/1470)
-- Use `impl Future` instead of `async-trait` in most traits. [#1468](https://github.com/async-graphql/async-graphql/pull/1468)
-- Upgrade `base64` to `0.21` [#1466](https://github.com/async-graphql/async-graphql/pull/1466)
-- Standardize space between Args, Lists and Binary items [#1392](https://github.com/async-graphql/async-graphql/pull/1392)
-- feat: support bigdecimal 0.4.x [#1358](https://github.com/async-graphql/async-graphql/pull/1358)
-
-# [7.0.1] 2024-01-21
-
-- Add `Shareable` Attribute To InputObjectField [#1459](https://github.com/async-graphql/async-graphql/pull/1459)
-- Feature Generic Unions [#1424](https://github.com/async-graphql/async-graphql/pull/1424)
-- Address axum integration compilation error with non-Sync body [#1460](https://github.com/async-graphql/async-graphql/pull/1460)
-- fix: date cursor precision string format [#1462](https://github.com/async-graphql/async-graphql/pull/1462)
-
-# [7.0.0] 2024-01-06
-
-- upgrade to `http1`
-- Feature extend ResolveInfo with field attribute [#1428](https://github.com/async-graphql/async-graphql/pull/1428)
-
-# [6.0.11] 2023-11-19
-
-- Clean up example docs [#1411](https://github.com/async-graphql/async-graphql/pull/1411)
-- Run batch requests concurrently [#1420](https://github.com/async-graphql/async-graphql/pull/1420)
-- Update opentelemetry to `v0.21.x` [#1422](https://github.com/async-graphql/async-graphql/pull/1422)
-
-# [6.0.10] 2023-11-04
-
-- bump opentelemetry `0.20.0` [#1406](https://github.com/async-graphql/async-graphql/pull/1406)
-- fix check for serial [#1405](https://github.com/async-graphql/async-graphql/pull/1405)
-- fixes complexity visitor
-- bump Rocket from `0.5.0-rc.2` to `0.5.0-rc.4`
-
-# [6.0.9] 2023-10-21
-
-- add support uploading files in dynamic schema [#1384](https://github.com/async-graphql/async-graphql/discussions/1384)
-- Include `@composeDirective` in Federation's `_service` field and document `#[TypeDirective]` [#1400](https://github.com/async-graphql/async-graphql/pull/1400)
-
-# [6.0.7] 2023-09-23
-
-- initialize source field in tracing extension parse_query method [#1367](https://github.com/async-graphql/async-graphql/pull/1367)
-- test(variables): empty object passes but empty array fails [#1377](https://github.com/async-graphql/async-graphql/pull/1377)
-- Add support for entities without a reference resolver [#1378](https://github.com/async-graphql/async-graphql/pull/1378)
-- Fixes [#1356](https://github.com/async-graphql/async-graphql/pull/1356)
-
-# [6.0.6] 2023-09-04
-
-- fixed SDL formatting for resolver argument comments regressed [#1363](https://github.com/async-graphql/async-graphql/issues/1363)
-
-# [6.0.5] 2023-08-20
-
-- Implement exporting argument documentation [#1352](https://github.com/async-graphql/async-graphql/pull/1352)
-- Add `ValueAccessor::as_value` and `ListAccessor::as_values_slice` methods [#1353](https://github.com/async-graphql/async-graphql/pull/1353)
-- dynamic: fixes key not found when using entity resolver [#1362](https://github.com/async-graphql/async-graphql/issues/1362)
-- fix panic in complexity visitor [#1359](https://github.com/async-graphql/async-graphql/pull/1359)
-- update MSRV to `1.70.0`
-
-# [6.0.4] 2023-08-18
-
-- Parse "repeatable" in directive definitions. [#1336](https://github.com/async-graphql/async-graphql/pull/1336)
-- add support `multipart/mixed` request. [#1348](https://github.com/async-graphql/async-graphql/issues/1348)
-- async-graphql-actix-web: add `GraphQL` handler.
-- async-graphql-axum: add `GraphQL` service.
-
-# [6.0.3] 2023-08-15
-
-- 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](https://github.com/async-graphql/async-graphql/pull/1329)
-- feat: added `OutputType` implementation for `std::sync::Weak` [#1334](https://github.com/async-graphql/async-graphql/pull/1334)
-
-# [6.0.1] 2023-08-02
-
-- dynamic: remove `TypeRefInner`
-- update MSRV to `1.67.0`
-
-# [6.0.0] 2023-07-29
-
-- 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](https://github.com/async-graphql/async-graphql/issues/1295)
-- Schema (type) level directive support with optional support of federation composeDirective [#1308](https://github.com/async-graphql/async-graphql/pull/1308)
-- Add support for generic structs derriving InputObject and SimpleObject [#1313](https://github.com/async-graphql/async-graphql/pull/1313)
-- chore: trim up some unnecessary code [#1324](https://github.com/async-graphql/async-graphql/pull/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](https://github.com/async-graphql/async-graphql/pull/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
-
-```rust
-#[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*
-
-```rust
-// #[Directive(location = "field")]
-#[Directive(location = "Field")]
-pub fn lowercase() -> impl CustomDirective {
- LowercaseDirective
-}
-```
-
-# [5.0.10] 2023-06-07
-
-- Upgrade opentelemetry to 0.19.0 [#1252](https://github.com/async-graphql/async-graphql/pull/1262)
-- Remove internal `CursorScalar` type and expose `Edge::cursor` member [#1302](https://github.com/async-graphql/async-graphql/pull/1302)
-
-# [5.0.9] 2023-05-25
-
-- Prevent input check stack overflow [#1293](https://github.com/async-graphql/async-graphql/pull/1293)
-- Change batch requests to run concurrently [#1290](https://github.com/async-graphql/async-graphql/issues/1290)
-
-# [5.0.8] 2023-05-09
-
-- Improve documentation on Dataloader [#1282](https://github.com/async-graphql/async-graphql/pull/1282)
-- Prevent recursive input type checking from hitting stack overflow [#1284](https://github.com/async-graphql/async-graphql/pull/1284)
-- update MSRV to `1.65.0`
-
-# [5.0.7] 2023-03-25
-
-- Disable default-features in workspace.dependencies [#1232](https://github.com/async-graphql/async-graphql/pull/1232)
-- Copy edit extensions section of The Book [#1234](https://github.com/async-graphql/async-graphql/pull/1234)
-- disable default features for async-graphql in workspace dependencies [#1237](https://github.com/async-graphql/async-graphql/pull/1237)
-- chore: make edge field and connection field shareable [#1246](https://github.com/async-graphql/async-graphql/pull/1246)
-- Added 3 new fns to the ObjectAccessor. [#1244](https://github.com/async-graphql/async-graphql/pull/1244)
-- Dataloader futures lose span context [#1256](https://github.com/async-graphql/async-graphql/pull/1256)
-- Propagate ErrorExtensionValues when calling InputValueError.propagate [#1257](https://github.com/async-graphql/async-graphql/pull/1257)
-- Correct error string for object in ValueAccessor [#1260](https://github.com/async-graphql/async-graphql/pull/1260)
-
-# [5.0.6] 2023-02-11
-
-- docs: Tweak dataloader example and link to full example [#1194](https://github.com/async-graphql/async-graphql/pull/1194)
-- docs: Mention the importance of using dataloader with federation/entities [#1194](https://github.com/async-graphql/async-graphql/pull/1194)
-- chore: enable GraphiQL/Playground via feature flag [#1202](https://github.com/async-graphql/async-graphql/pull/1202)
-- fix: Export directives to federation SDL so they can be composed. [#1209](https://github.com/async-graphql/async-graphql/pull/1209)
-- Fix doc contents details and add AutoCorrect lint to CI. [#1210](https://github.com/async-graphql/async-graphql/pull/1210)
-- fix: provide correct type for _service with dynamic schema [#1212](https://github.com/async-graphql/async-graphql/pull/1212)
-- feat(subscription): support generics in MergedSubscription types [#1222](https://github.com/async-graphql/async-graphql/pull/1222)
-- feat: modify Connection to allow optionally disable nodes field in gql output. [#1218](https://github.com/async-graphql/async-graphql/pull/1218)
-- fixes interface type condition query [#1228](https://github.com/async-graphql/async-graphql/pull/1228)
-- fixes [#1226](https://github.com/async-graphql/async-graphql/issues/1226)
-- update MSRV to `1.64.0`
-
-# [5.0.5] 2023-01-03
-
-- dynamic schema: add boxed_any function [#1179](https://github.com/async-graphql/async-graphql/pull/1179)
-- Improve GraphiQL v2 [#1182](https://github.com/async-graphql/async-graphql/pull/1182)
-- Fix: __Type.oneOf to __Type.isOneOf [#1188](https://github.com/async-graphql/async-graphql/pull/1188)
-- Implement From for ConstValue [#1169](https://github.com/async-graphql/async-graphql/pull/1169)
-- Fixes [#1192](https://github.com/async-graphql/async-graphql/issues/1192)
-
-# [5.0.4] 2022-12-17
-
-- Fix named_list_nn [#1172](https://github.com/async-graphql/async-graphql/pull/1172)
-- Add `DynamicRequestExt::root_value` to specify the root value for the request
-- Change `CustomValidator::check` returns error type from `String` to `InputValueError`.
-- Add support that custom validators can set error extensions. [#1174](https://github.com/async-graphql/async-graphql/issues/1174)
-
-# [5.0.3] 2022-12-07
-
-- Fixes [#1163](https://github.com/async-graphql/async-graphql/issues/1163)
-- Fixes [#1161](https://github.com/async-graphql/async-graphql/issues/1161)
-
-# [5.0.2] 2022-11-30
-
-- Fixes [#1157](https://github.com/async-graphql/async-graphql/issues/1157)
-
-# [5.0.1] 2022-11-29
-
-- Add boolean dynamic ValueAccessor method [#1153](https://github.com/async-graphql/async-graphql/pull/1153)
-
-# [5.0.0] 2022-11-27
-
-- Update MSRV to `1.60.0`
-- [async-graphql-axum] bump axum from `0.5.1` to `0.6.0` [#1106](https://github.com/async-graphql/async-graphql/issues/1106)
-
-# [5.0.0-alpha.5] 2022-11-21
-
-- Fixes [#1138](https://github.com/async-graphql/async-graphql/issues/1138)
-- Fixes [#1140](https://github.com/async-graphql/async-graphql/issues/1140)
-- Add `dynamic::Scalar::validator` method to set value validator.
-
-# [5.0.0-alpha.4] 2022-11-12
-
-- Add support to federation(v2) for dynamic schema
-
-# [5.0.0-alpha.3] 2022-11-12
-
-- Simplified way to create type reference `dynamic::TypeRef`
-
-# [5.0.0-alpha.2] 2022-11-11
-
-- Keep object 'implements' order stable in SDL export [#1142](https://github.com/async-graphql/async-graphql/pull/1142)
-- Fix regression on `ComplexObject` descriptions [#1141](https://github.com/async-graphql/async-graphql/pull/1141)
-
-# [5.0.0-alpha.1] 2022-11-10
-
-- Add support for dynamic schema
-- Add `tempfile` feature, enabled by default
-
-# [4.0.17] 2022-10-24
-
-- Add support for using `Union` and `OneofObject` on the same struct [#1116](https://github.com/async-graphql/async-graphql/issues/1116)
-
-# [4.0.16] 2022-10-20
-
-- Add credentials to GraphiQL 2 [#1105](https://github.com/async-graphql/async-graphql/pull/1105)
-- Add TypeName support for InputObject [#1110](https://github.com/async-graphql/async-graphql/pull/1110)
-- Fix error message [#1058](https://github.com/async-graphql/async-graphql/pull/1058)
-- Add TypeName support for Enum, Union, OneofInputObject, Subscription, MergedObject, MergedSubscription, Scalar, Interface, Directive
-- Fixes [#1052](https://github.com/async-graphql/async-graphql/issues/1052)
-- Implement `CustomValidator` for `F: Fn(&T) -> Result<(), E: Into>`
-- Add `validator` attribute to `InputObject` macro [#1072](https://github.com/async-graphql/async-graphql/issues/1072)
-
-# [4.0.15] 2022-10-07
-
-- Dynamic Document Title for GraphiQL v2 and GraphQL Playground [#1099](https://github.com/async-graphql/async-graphql/pull/1099)
-- Skip tracing for introspection queries. [#841](https://github.com/async-graphql/async-graphql/issues/841)
-- Add `SchemaBuilder::disable_suggestions` method to disable field suggestions. [#1101](https://github.com/async-graphql/async-graphql/issues/1101)
-
-# [4.0.14] 2022-09-25
-
-- Implement a simple approach to using the link directive. [#1060](https://github.com/async-graphql/async-graphql/pull/1060)
-- docs: Update federation docs with examples of each directive. [#1080](https://github.com/async-graphql/async-graphql/pull/1080)
-- Add support for parse request from query string. [#1085](https://github.com/async-graphql/async-graphql/issues/1085)
-
-# [4.0.13] 2022-09-09
-
-- Compare to expected schema [#1048](https://github.com/async-graphql/async-graphql/pull/1048)
-- docs: readme flair [#1054](https://github.com/async-graphql/async-graphql/pull/1054)
-- Remove `bson-uuid` feature [#1032](https://github.com/async-graphql/async-graphql/issues/1032)
-- Add `no_cache` for `cache_control` attribute [#1051](https://github.com/async-graphql/async-graphql/issues/1051)
-- Resurrect code generation through tests [#1062](https://github.com/async-graphql/async-graphql/pull/1062)
-- Support for primitive type in CursorType [#1049](https://github.com/async-graphql/async-graphql/pull/1049)
-- Add `SDLExportOptions::include_specified_by` method to enable `specifiedBy` directive [#1065](https://github.com/async-graphql/async-graphql/issues/1065)
-
-# [4.0.12] 2022-08-24
-
-- Update MSRV to `1.59.0`
-- Support `@specifiedBy` directive in SDL export [#1041](https://github.com/async-graphql/async-graphql/pull/1041)
-- Add GraphiQL v2 [#1044](https://github.com/async-graphql/async-graphql/pull/1044)
-- Export SDL: consistently avoid trailing spaces [#1043](https://github.com/async-graphql/async-graphql/pull/1043)
-
-# [4.0.11] 2022-08-23
-
-- Define `override` directive on fields [#1029](https://github.com/async-graphql/async-graphql/pull/1029)
-- Add `@tag` support [#1038](https://github.com/async-graphql/async-graphql/pull/1038)
-- Export SDL: avoid trailing space for scalar definitions [#1036](https://github.com/async-graphql/async-graphql/pull/1036)
-- Fixes [#1039](https://github.com/async-graphql/async-graphql/issues/1039)
-
-# [4.0.10] 2022-08-18
-
-- Fixes extension `request.data(X)` being lost in the resolver [#1018](https://github.com/async-graphql/async-graphql/pull/1018)
-- Add Apollo federation `@shareable` directive support [#1025](https://github.com/async-graphql/async-graphql/pull/1025)
-- Add Apollo Federation `@inaccessible` directive support [#1026](https://github.com/async-graphql/async-graphql/pull/1026)
-
-# [4.0.9] 2022-08-15
-
-- `on_connection_init` takes `FnOnce` instead of `Fn` [#1022](https://github.com/async-graphql/async-graphql/issues/1022#issuecomment-1214575590)
-
-# [4.0.8] 2022-08-12
-
-- Add tracing to dataloader methods when the tracing feature is enabled. [#996](https://github.com/async-graphql/async-graphql/pull/996)
-
-# [4.0.7] 2022-08-09
-
-- Limit parser recursion depth to `64`.
-
-# [4.0.6] 2022-07-21
-
-- Limit execution recursion depth to `32` by default.
-
-# [4.0.5] 2022-07-18
-
-- Fix serializing of JSON default values [#969](https://github.com/async-graphql/async-graphql/issues/969)
-- Bump `rocket-0.5.0-rc.1` to `rocket-0.5.0-rc.2` for `async-graphql-rocket` [#968](https://github.com/async-graphql/async-graphql/pull/968)
-- Implement `Default` for `StringNumber` [#980](https://github.com/async-graphql/async-graphql/issues/980)
-- Implement `Guard` for `Fn`
-- Fix impossible to specify both `name` and `input_name` [#987](https://github.com/async-graphql/async-graphql/issues/987)
-
-
-# [4.0.4] 2022-6-25
-
-- Bump Actix-web from `4.0.1` to `4.1.0`
-- Add a `prefer_single_line_descriptions` option on `SDLExportOptions` [#955](https://github.com/async-graphql/async-graphql/pull/955)
-- Fixes [#957](https://github.com/async-graphql/async-graphql/issues/957)
-- Fixes [#943](https://github.com/async-graphql/async-graphql/issues/943)
-
-# [4.0.3] 2022-6-20
-
-- Custom error type in axum request extractor [#945](https://github.com/async-graphql/async-graphql/pull/945)
-- Add nodes exposure on `ConnectionType` so nesting through edges isn't always needed. [#952](https://github.com/async-graphql/async-graphql/pull/952)
-- Make email-validator optional [#950](https://github.com/async-graphql/async-graphql/pull/950)
-
-# [4.0.2] 2022-6-10
-
-- Expose `Edge::node` to allow better testing. [#933](https://github.com/async-graphql/async-graphql/pull/933)
-- Integrate with the [`bigdecimal` crate](https://crates.io/crates/bigdecimal). [#926](https://github.com/async-graphql/async-graphql/pull/926)
-- Improve the examples in the book. [#940](https://github.com/async-graphql/async-graphql/pull/940)
-- Fixed [#941](https://github.com/async-graphql/async-graphql/issues/941)
-- Fixed [#848](https://github.com/async-graphql/async-graphql/issues/848)
-- Bump `darling` from `0.13.0` to `0.14.0` [#939](https://github.com/async-graphql/async-graphql/pull/939)
-- Fixed [#9461](https://github.com/async-graphql/async-graphql/issues/946)
-
-# [4.0.1] 2022-5-24
-
-- Add `Schema::build_with_ignore_name_conflicts` method to specifies a list to ignore type conflict detection.
-
-# [4.0.0] 2022-5-17
-
-- Implement the `ConnectionNameType` and `EdgeNameType` traits to specify GraphQL type names for `Connection` and `Edge`, which can be automatically generated using `DefaultConnectionName` and `DefaultEdgeName`.
-- Add `#[non_exhaustive]` attribute to Request/Response types.
-- Introduce ability to pre-parse Request's query. [#891](https://github.com/async-graphql/async-graphql/pull/891)
-- Add `introspection-only` mode. [#894](https://github.com/async-graphql/async-graphql/pull/894)
-- Add `bson-uuid` feature to implement `ScalarType` for `bson::Uuid`. [#875](https://github.com/async-graphql/async-graphql/pull/875)
-- Bump `regex` crate from `1.4.5` to `1.5.5`. [#862](https://github.com/async-graphql/async-graphql/pull/862)
-- Bump `chrono-tz` crate from `0.5.3` to `0.6.1`. [#831](https://github.com/async-graphql/async-graphql/pull/831)
-- Move the pest parser code generation step into a test. [#901](https://github.com/async-graphql/async-graphql/pull/901)
-- Update `log` to version `0.4.16`. [#903](https://github.com/async-graphql/async-graphql/pull/903)
-- Added impl of `CursorType` for floats [#897](https://github.com/async-graphql/async-graphql/pull/897)
-- Implement `OutputType` for `tokio::sync::RwLock` and `tokio::sync::Mutex`. [#896](https://github.com/async-graphql/async-graphql/pull/896)
-- Bump [`uuid`](https://crates.io/crates/uuid) to `1.0.0`. [#907](https://github.com/async-graphql/async-graphql/pull/907/files)
-- Add some options for exporting SDL. [#877](https://github.com/async-graphql/async-graphql/issues/877)
-- Cache parsed `ExecuteDocument` in APQ. [#919](https://github.com/async-graphql/async-graphql/issues/919)
-- Fixed `OneofObject` restriction on inner types being unique. [#923](https://github.com/async-graphql/async-graphql/issues/923)
-
-# [3.0.38] 2022-4-8
-
-- Update Axum integration to Axum 0.5.1 [#883](https://github.com/async-graphql/async-graphql/pull/883)
-- Support macro type in enum variant. [#884](https://github.com/async-graphql/async-graphql/pull/884)
-- Introduce process_with for input object [#817](https://github.com/async-graphql/async-graphql/pull/817)
-- Add `MaybeUndefined::update_to` method. [#881](https://github.com/async-graphql/async-graphql/issues/881)
-
-# [3.0.37] 2022-3-30
-
-- Panics when the same Rust type has the same name. [#880](https://github.com/async-graphql/async-graphql/issues/880)
-
-# [3.0.36] 2022-3-22
-
-- Generate `@deprecated` to SDL. [#874](https://github.com/async-graphql/async-graphql/issues/874)
-- Expose `Connection::edges`. [#871](https://github.com/async-graphql/async-graphql/issues/871)
-
-# [3.0.35] 2022-3-14
-
-- Make `HashMap` more generics for `InputOutput` and `OutputType`.
-- Add support `group` attribute to Object/SimpleObject/ComplexObject/Subscription macros. [#838](https://github.com/async-graphql/async-graphql/issues/838)
-- Fixed recursive generic input objects failing to compile. [#859](https://github.com/async-graphql/async-graphql/issues/859)
-- Add `ErrorExtensionValues::get` method. [#855](https://github.com/async-graphql/async-graphql/issues/855)
-
-# [3.0.34] 2022-3-5
-
-- Export `@oneOf` directive to SDL when Oneof type is defined. [#766](https://github.com/async-graphql/async-graphql/issues/766)
-
-# [3.0.33] 2022-3-4
-
-- Add support for oneof field on object. [#766](https://github.com/async-graphql/async-graphql/issues/766)
-
-# [3.0.32] 2022-3-4
-
-- Bump `Actix-web` from `4.0.0-rc.3` to `4.0.1`.
-
-# [3.0.31] 2022-02-17
-
-- Add `OneOfObject` macro to support for oneof input object.
-- Bump actix-web from `4.0.0-rc.2` to `4.0.0-rc.3`.
-
-# [3.0.30] 2022-2-15
-
-- Implement `ScalarType` for `time::Date`. [#822](https://github.com/async-graphql/async-graphql/pull/822)
-
-# [3.0.29] 2022-2-6
-
-- Pass context to resolvers with flatten attribute. [#813](https://github.com/async-graphql/async-graphql/pull/813)
-- Add support for using both `ComplexObject` and `InputObject`.
-- Bump `Actix-web` from `4.0.0-beta.19` to `4.0.0-rc.2`.
-
-# [3.0.28] 2022-1-30
-
-- Implement `InputType` and `OutputType` for `Box<[T]>` and `Arc<[T]>`. [#805](https://github.com/async-graphql/async-graphql/issues/805)
-
-# [3.0.27] 2022-1-28
-
-- Fix possible stack overflow in validator, thanks @quapka.
-
-# [3.0.26] 2022-1-26
-
-- Add `skip_input` attribute to `InputObject` macro, `skip_output` attribute to `SimpleObject` macro.
-
-# [3.0.25] 2022-1-24
-
-- Fixed some integrations overwritten HTTP headers. [#793](https://github.com/async-graphql/async-graphql/issues/793)
-- Fixed variable type not checked when given a default value. [#795](https://github.com/async-graphql/async-graphql/pull/795)
-
-# [3.0.24] 2022-1-24
-
-- Remove `'static` bound for `impl From for Error`.
-
-# [3.0.23] 2022-1-19
-
-- Bump hashbrown from `0.11.2` to `0.12.0`.
-- Implement `InputType` for `Box` and `Arc`. [#792](https://github.com/async-graphql/async-graphql/issues/792)
-- Add scalars for the `time` crate's datetime types. [#791](https://github.com/async-graphql/async-graphql/pull/791)
-- Add `DataContext` trait. [#786](https://github.com/async-graphql/async-graphql/pull/786)
-
-## [3.0.22] 2022-1-11
-
-- Add support `flatten` attribute for `SimpleObject`, `ComplexObject` and `Object` macros. [#533](https://github.com/async-graphql/async-graphql/issues/533)
-- Actix integration: cbor response support + error handling improvements [#784](https://github.com/async-graphql/async-graphql/pull/784)
-
-## [3.0.21] 2022-1-11
-
-- Add `Union` and `Interface` support for trait objects. [#780](https://github.com/async-graphql/async-graphql/issues/780)
-
-## [3.0.20] 2022-1-5
-
-- Bump `lru` to `0.7.1`. [#773](https://github.com/async-graphql/async-graphql/pull/773)
-- Align `indexmap` version to `1.6.2`. [#776](https://github.com/async-graphql/async-graphql/pull/776)
-- Bump actix-web from `4.0.0-beta.18` to `4.0.0-beta.19`.
-- Fix the generic `SimpleObject` can't define the lifetimes. [#774](https://github.com/async-graphql/async-graphql/issues/774)
-
-## [3.0.19] 2021-12-28
-
-- Add `InputType` / `OutputType` support for `hashbrown` crate.
-- Bump actix-web from `4.0.0-beta.14` to `4.0.0-beta.18`. [#768](https://github.com/async-graphql/async-graphql/pull/768)
-
-## [3.0.18] 2021-12-26
-
-- Federation's `_Entity` should not be sent if empty as it's in conflict with [GraphQL Union type validation](https://spec.graphql.org/draft/#sec-Unions.Type-Validation) [#765](https://github.com/async-graphql/async-graphql/pull/765).
-- Fix field guards not working on `ComplexObject`. [#767](https://github.com/async-graphql/async-graphql/issues/767)
-
-## [3.0.17] 2021-12-16
-
-- Bump poem to `1.2.2`.
-
-## [3.0.16] 2021-12-16
-
-- Bump poem to `1.2.1`.
-
-## [3.0.15] 2021-12-12
-
-- Bump actix-web from `4.0.0-beta.11` to `4.0.0-beta.14`.
-
-## [3.0.14] 2021-12-06
-
-- [async-graphql-axum] bump axum from `0.3` to `0.4`.
-
-## [3.0.13] 2021-12-06
-
-- No longer assumes that a subscription stream that failed to resolve has ended. [#744](https://github.com/async-graphql/async-graphql/issues/744)
-- Rework to implement `InputType` and `OutputType` for `HashMap` and `BTreeMap`.
-
-## [3.0.12] 2021-12-05
-
-- Fix possible deadlock in dataloader. [#555](https://github.com/async-graphql/async-graphql/issues/555)
-- Add some helper methods for `BatchRequest`.
- - BatchRequest::iter
- - BatchRequest::iter_mut
- - BatchRequest::variables
- - BatchRequest::data
- - BatchRequest::disable_introspection
-- Fix implicit interfaces not being exposed via the __schema introspection. [#741](https://github.com/async-graphql/async-graphql/pull/741)
-
-## [3.0.11] 2021-12-02
-
-- Fix panic on f32-64::INFINITE/f32-64::NEG_INFINITE/f32-64::NAN output. [#735](https://github.com/async-graphql/async-graphql/issues/735)
-
-## [3.0.10] 2021-11-30
-
-- Fix the custom validator cannot work on `Option>`.
-
-## [3.0.9] 2021-11-30
-
-- Fix the validator cannot work on `Option>`.
-
-## [3.0.8] 2021-11-30
-
-- `#[graphql(validator(list))]` no longer applies to `max_items` and `min_items`.
-- Implement `InputValue`/`OutputValue` for `serde_json::Value`.
-- Add support for `SmolStr` via a feature. [#730](https://github.com/async-graphql/async-graphql/pull/730)
-
-## [3.0.7] 2021-11-23
-
-- Fix error extensions cause stack overflow. [#719](https://github.com/async-graphql/async-graphql/issues/719)
-
-## [3.0.6] 2021-11-19
-
-- Custom directives. [Book](https://async-graphql.github.io/async-graphql/en/custom_directive.html)
-
-## [3.0.5] 2021-11-19
-
-- Remove skipped fields from the document before executing the query.
-- Add `isRepeatable` field to `__Directive` - [GraphQL - October 2021]
-
-## [3.0.4] 2021-11-18
-
-- Remove `OutputJson` because `Json` can replace it.
-- Allowed use validators on wrapper types, for example: `Option`, `MaybeUnefined`.
-
-## [3.0.3] 2021-11-18
-
-- [integrations] Make `GraphQLWebSocket::new` use generic stream.
-- [integrations] Add `GraphQLWebSocket::new_with_pair` method.
-
-## [3.0.2] 2021-11-16
-
-- Add `url`, `regex` and `ip` validators.
-
-## [3.0.1] 2021-11-17
-
-- Remove the `ctx` parameter of `CustomValidator::check`. [#710](https://github.com/async-graphql/async-graphql/issues/710)
-
-## [3.0.0-alpha.2] 2021-11-16
-
-- Change the signature of the `connection::query` function to allow the callback to use any type that implements `Into`.
-- Remove `ResolverError` and use `Error::new_with_source` instead.
-- Add `ErrorExtensionValues::unset` method.
-- Use the `SimpleObject` macro and the `InputObject` macro at the same time.
-- Types that are not referenced will be hidden in introspection.
-- Make the API of integrations is more consistent.
-- Remove `async-graphql-tide`.
-- Rework validators. [Book](https://async-graphql.github.io/async-graphql/en/input_value_validators.html)
-- Rework guards. [Book](https://async-graphql.github.io/async-graphql/en/field_guard.html)
-
-## [2.11.3] 2021-11-13
-
-- Implemented CursorType for i32/i64. [#701](https://github.com/async-graphql/async-graphql/pull/701)
-- An error is returned when the number fails to parse. [#704](https://github.com/async-graphql/async-graphql/issues/704)
-- Fix Federation entity union is empty during schema introspection. [#700](https://github.com/async-graphql/async-graphql/issues/700)
-
-## [2.11.2] 2021-11-11
-
-- Fix the problem that `EmptyMutation` may cause when used in `MergedObject`. [#694](https://github.com/async-graphql/async-graphql/issues/694)
-- If a GraphQL name conflict is detected when creating schema, it will cause panic. [#499](https://github.com/async-graphql/async-graphql/issues/499)
-
-## [2.11.1] 2021-11-07
-
-- Add `chrono::Duration` custom scalar. [#689](https://github.com/async-graphql/async-graphql/pull/689)
-- Implement `From