Docs.rs
  • async-graphql-2.11.1
    • async-graphql 2.11.1
    • Docs.rs crate page
    • MIT/Apache-2.0
    • Links
    • Homepage
    • Repository
    • crates.io
    • Source
    • Owners
    • sunli829
    • Dependencies
      • async-graphql-derive =2.11.1 normal
      • async-graphql-parser =2.11.1 normal
      • async-graphql-value =2.11.1 normal
      • async-stream ^0.3.0 normal
      • async-trait ^0.1.48 normal
      • blocking ^1.0.2 normal
      • bson ^2.0.0 normal
      • bytes ^1.0.1 normal
      • chrono ^0.4.19 normal
      • chrono-tz ^0.5.3 normal
      • fnv ^1.0.7 normal
      • futures-channel ^0.3.13 normal
      • futures-timer ^3.0.2 normal
      • futures-util ^0.3.13 normal
      • http ^0.2.3 normal
      • indexmap ^1.6.2 normal
      • iso8601-duration ^0.1.0 normal
      • log ^0.4.14 normal
      • lru ^0.6.5 normal
      • mime ^0.3.15 normal
      • multer ^2.0.0 normal
      • num-traits ^0.2.14 normal
      • once_cell ^1.7.2 normal
      • opentelemetry ^0.16.0 normal
      • pin-project-lite ^0.2.6 normal
      • regex ^1.4.5 normal
      • rust_decimal ^1.14.3 normal
      • secrecy ^0.7.0 normal
      • serde ^1.0.125 normal
      • serde_cbor ^0.11.1 normal
      • serde_json ^1.0.64 normal
      • sha2 ^0.9.3 normal
      • static_assertions ^1.1.0 normal
      • tempfile ^3.2.0 normal
      • thiserror ^1.0.24 normal
      • tracing-futures ^0.2.5 normal
      • tracing ^0.1.25 normal
      • url ^2.2.1 normal
      • uuid ^0.8.2 normal
      • futures-channel ^0.3.13 dev
      • tokio ^1.4.0 dev
    • Versions
    • 100% of the crate is documented
  • Go to latest version
  • Platform
    • i686-pc-windows-msvc
    • i686-unknown-linux-gnu
    • x86_64-apple-darwin
    • x86_64-pc-windows-msvc
    • x86_64-unknown-linux-gnu
  • Feature flags
  • docs.rs
    • About docs.rs
    • Privacy policy
  • Rust
    • Rust website
    • The Book
    • Standard Library API Reference
    • Rust by Example
    • The Cargo Guide
    • Clippy Documentation
☰
logo

Crate async_graphql

Version 2.11.1

See all async_graphql's items

  • Modules
  • Macros
  • Structs
  • Enums
  • Traits
  • Functions
  • Type Definitions

Modules

  • context
  • dataloader
  • extensions
  • guard
  • http
  • resolver_utils
  • types
  • validators

Macros

  • scalar
  • value

Structs

  • CacheControl
  • DeserializerError
  • Error
  • ErrorExtensionValues
  • InputValueError
  • Lookahead
  • Name
  • Number
  • Request
  • ResolverError
  • Response
  • Schema
  • SchemaBuilder
  • SerializerError
  • ServerError
  • ValidationResult
  • Variables

Enums

  • BatchRequest
  • BatchResponse
  • ParseRequestError
  • PathSegment
  • ValidationMode
  • Value

Traits

  • ErrorExtensions
  • InputObjectType
  • InputType
  • InterfaceType
  • ObjectType
  • OutputType
  • ResultExt
  • Type
  • UnionType

Functions

  • from_value
  • to_value

Type Definitions

  • FieldError
  • FieldResult
  • InputValueResult
  • Result
  • ServerResult
Change settings

Crate async_graphql[−][src]

Expand description

A GraphQL server library implemented in Rust

Crates.io version Download docs.rs docs Unsafe Rust forbidden

Documentation

  • Feature Comparison
  • Book
  • 中文文档
  • Docs
  • GitHub repository
  • Cargo package
  • Minimum supported Rust version: 1.56.1 or later

Features

  • Fully supports async/await
  • Type safety
  • Rustfmt friendly (Procedural Macro)
  • Custom scalars
  • Minimal overhead
  • Easy integration (poem, actix_web, tide, warp, rocket …)
  • File upload (Multipart request)
  • Subscriptions (WebSocket transport)
  • Custom extensions
  • Apollo Tracing extension
  • Limit query complexity/depth
  • Error Extensions
  • Apollo Federation
  • Batch Queries
  • Apollo Persisted Queries

Crate features

This crate offers the following features, all of which are not activated by default:

  • apollo_tracing: Enable the Apollo tracing extension.
  • apollo_persisted_queries: Enable the Apollo persisted queries extension.
  • log: Enable the logger extension.
  • tracing: Enable the tracing extension.
  • opentelemetry: Enable the OpenTelemetry extension.
  • unblock: Support asynchronous reader for Upload
  • bson: Integrate with the bson crate.
  • chrono: Integrate with the chrono crate.
  • chrono-tz: Integrate with the chrono-tz crate.
  • url: Integrate with the url crate.
  • uuid: Integrate with the uuid crate.
  • string_number: Enable the StringNumber.
  • dataloader: Support DataLoader.
  • decimal: Integrate with the rust_decimal crate.
  • cbor: Support for serde_cbor.

Integrations

  • Actix-web async-graphql-actix_web
  • Warp async-graphql-warp
  • Tide async-graphql-tide

License

Licensed under either of

  • Apache License, Version 2.0, (./LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
  • MIT license (./LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.

References

  • GraphQL
  • GraphQL Multipart Request
  • GraphQL Cursor Connections Specification
  • GraphQL over WebSocket Protocol
  • Apollo Tracing
  • Apollo Federation

Examples

All examples are in the sub-repository, located in the examples directory.

Run an example:

git submodule update # update the examples repo
cd examples && cargo run --bin [name]

Benchmarks

Ensure that there is no CPU-heavy process in background!

cd benchmark
cargo bench

Now a HTML report is available at benchmark/target/criterion/report.

Re-exports

pub use async_graphql_parser as parser;
pub use resolver_utils::ContainerType;
pub use resolver_utils::EnumType;
pub use resolver_utils::ScalarType;
pub use context::*;
pub use parser::Pos;
pub use parser::Positioned;
pub use types::*;

Modules

context

Query context.

dataloaderdataloader

Batch loading support, used to solve N+1 problem.

extensions

Extensions for schema

guard

Field guards

http

A helper module that supports HTTP

resolver_utils

Utilities for implementing OutputType::resolve.

types

Useful GraphQL types.

validators

Input value validators

Macros

scalar

Define a scalar

value

Construct a ConstValue.

Structs

CacheControl

Cache control values

DeserializerError

This type represents errors that can occur when deserializing.

Error

An error with a message and optional extensions.

ErrorExtensionValues

Extensions to the error.

InputValueError

An error parsing an input value.

Lookahead

A selection performed by a query.

Name

A GraphQL name.

Number

Represents a JSON number, whether integer or floating point.

Request

GraphQL request.

ResolverError

A wrapper around a dynamic error type for resolver.

Response

Query response

Schema

GraphQL schema.

SchemaBuilder

Schema builder

SerializerError

This type represents errors that can occur when serializing.

ServerError

An error in a GraphQL server.

ValidationResult

Validation results.

Variables

Variables of a query.

Enums

BatchRequest

Batch support for GraphQL requests, which is either a single query, or an array of queries

BatchResponse

Response for batchable queries

ParseRequestError

An error parsing the request.

PathSegment

A segment of path to a resolver.

ValidationMode

Validation mode

Value

A resolved GraphQL value, for example 1 or "Hello World!".

Traits

ErrorExtensions

An error which can be extended into a Error.

InputObjectType

A GraphQL input object.

InputType

Represents a GraphQL input value.

InterfaceType

A GraphQL interface.

ObjectType

A GraphQL object.

OutputType

Represents a GraphQL output value.

ResultExt

Extend a Result’s error value with ErrorExtensions.

Type

Represents a GraphQL type.

UnionType

A GraphQL interface.

Functions

from_value

Interpret a ConstValue as an instance of type T.

to_value

Convert a T into ConstValue which is an enum that can represent any valid GraphQL data.

Type Definitions

FieldError

An alias of async_graphql::Error. Present for backward compatibility reasons.

FieldResult

An alias of async_graphql::Result. Present for backward compatibility reasons.

InputValueResult

An error parsing a value of type T.

Result

An alias for Result<T, Error>.

ServerResult

Alias for Result<T, ServerError>.

Attribute Macros

ComplexObject

Define a complex GraphQL object for SimpleObject’s complex field resolver.

Object

Define a GraphQL object with methods

Scalar

Define a Scalar

Subscription

Define a GraphQL subscription

Derive Macros

Description

Attach a description to Object, Scalar or Subscription.

Enum

Define a GraphQL enum

InputObject

Define a GraphQL input object

Interface

Define a GraphQL interface

MergedObject

Define a merged object with multiple object types.

MergedSubscription

Define a merged subscription with multiple subscription types.

NewType

Define a NewType Scalar

SimpleObject

Define a GraphQL object with fields

Union

Define a GraphQL union

Results for CacheStorage

async_graphql::dataloader::CacheStorage
Cache storage for [DataLoader].
async_graphql::extensions::apollo_persisted_queries::CacheStorage
Cache storage for persisted queries.
async_graphql::extensions::apollo_persisted_queries::LruCacheStorage
Memory-based LRU cache.
No results :(
Try on DuckDuckGo?

Or try looking in one of these:
  • The Rust Reference for technical details about the language.
  • Rust By Example for expository code examples.
  • The Rust Book for introductions to language features and the language itself.
  • Docs.rs for documentation of crates released on crates.io.
async_graphql::dataloader::CacheFactory::create
Create a cache storage.
async_graphql::dataloader::NoCache::create
async_graphql::dataloader::HashMapCache::create
async_graphql::dataloader::LruCache::create