[][src]Crate async_graphql

A GraphQL server library implemented in Rust

Crates.io version Download docs.rs docs

Documentation

Features

  • Fully supports async/await
  • Type safety
  • Rustfmt friendly (Procedural Macro)
  • Custom scalars
  • Minimal overhead
  • Easy integration (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

Integrations

License

Licensed under either of

References

Examples

If you are just getting started, we recommend checking out our examples at: https://github.com/async-graphql/examples

To see how you would create a Relay-compliant server using async-graphql, warp, diesel & postgresql, you can also check out a real-world example at: https://github.com/phated/twentyfive-stars

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.

Crate features

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

Re-exports

pub use async_graphql_parser as parser;
pub use parser::Pos;
pub use parser::Positioned;
pub use types::*;

Modules

extensions

Extensions for schema

guard

Field guards

http

A helper module that supports HTTP

types

Useful GraphQL types.

validators

Input value validators

Structs

CacheControl

Cache control values

ContextBase

Query context

Data

Schema/Context data.

FieldError

An error in a field resolver.

Lookahead

A selection performed by a query.

Number

Represents a JSON number, whether integer or floating point.

QueryPathNode

The query path node

Request

GraphQL request.

Response

Query response

RuleError

Verification error.

Schema

GraphQL schema.

SchemaBuilder

Schema builder

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

Error

An error serving a GraphQL query.

InputValueError

An error in the format of an input value.

ParseRequestError

An error parsing the request.

QueryError

An error processing a GraphQL query.

QueryPathSegment

The query path segment

ValidationMode

Validation mode

Value

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

Traits

ErrorExtensions

An error which can be extended into a FieldError.

InputValueType

Represents a GraphQL input value

OutputValueType

Represents a GraphQL output value

ResultExt

Extend a Result's error value with ErrorExtensions.

ScalarType

Represents a GraphQL scalar

Type

Represents a GraphQL type

Type Definitions

Context

Context object for resolve field

FieldResult

An alias for Result<T, FieldError>.

InputValueResult

An alias for Result<T, InputValueError>.

Result

Result type

Attribute Macros

Object

Define a GraphQL object with methods

Scalar

Define a Scalar

Subscription

Define a GraphQL subscription

Derive Macros

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.

SimpleObject

Define a GraphQL object with fields

Union

Define a GraphQL union