Go to file
2020-03-18 08:44:41 +08:00
.github/workflows add some validation code 2020-03-08 20:35:36 +08:00
async-graphql-actix-web Update some documents 2020-03-18 08:44:41 +08:00
async-graphql-derive Update some documents 2020-03-18 08:44:41 +08:00
examples Support subscription 2020-03-17 17:26:59 +08:00
src v1.2.0 2020-03-17 19:11:14 +08:00
tests Support subscription 2020-03-17 17:26:59 +08:00
.gitignore init commit 2020-03-01 18:54:34 +08:00
Cargo.toml Support subscription 2020-03-17 17:26:59 +08:00
LICENSE-APACHE add some files 2020-03-01 21:56:14 +08:00
LICENSE-MIT add some files 2020-03-01 21:56:14 +08:00
README.md Update some documents 2020-03-18 08:44:41 +08:00

The GraphQL server library implemented by rust

async-graphql is a GraphQL server library that fully supports async/await and is easy to use.

It supports all of the GraphQL specifications and is easy to integrate into existing web servers.

Documentation

Example

cargo run --example actix-web

Open http://localhost:8000 in browser

Features

  • Fully support async/await
  • Type safety
  • Rustfmt friendly (Procedural Macro)
  • Custom scalar
  • Minimal overhead
  • Easy integration (hyper, actix_web, tide ...)
  • Upload files (Multipart request)
  • Subscription (WebSocket transport)

Integrations

  • async-graphql-actix-web (Actix-web)

Goals

  • Types
    • Scalar
      • Integer
      • Float
      • String
      • Bool
      • ID
      • DateTime
      • UUID
    • Containers
      • List
      • Non-Null
    • Object
      • Lifetime cycle
    • Enum
    • InputObject
      • Field default value
      • Deprecated flag
    • Interface
    • Union
  • Query
    • Fields
    • Arguments
      • Default value
      • Deprecated flag
    • Alias
    • Fragments
    • Inline fragments
    • Operation name
    • Variables
      • Default value
      • Parse value
    • Directives
      • @include
        • FIELD
        • FRAGMENT_SPREAD
        • INLINE_FRAGMENT
      • @skip
        • FIELD
        • FRAGMENT_SPREAD
        • INLINE_FRAGMENT
    • Schema
    • Multipart Request (https://github.com/jaydenseric/graphql-multipart-request-spec)
      • Actix-web
  • Subscription
    • Filter
    • WebSocket transport
  • Validation rules
    • ArgumentsOfCorrectType
    • DefaultValuesOfCorrectType
    • FieldsOnCorrectType
    • FragmentsOnCompositeTypes
    • KnownArgumentNames
    • KnownDirectives
    • KnownFragmentNames
    • KnownTypeNames
    • LoneAnonymousOperation
    • NoFragmentCycles
    • NoUndefinedVariables
    • NoUnusedFragments
    • NoUnusedVariables
    • OverlappingFieldsCanBeMerged
    • PossibleFragmentSpreads
    • ProvidedNonNullArguments
    • ScalarLeafs
    • UniqueArgumentNames
    • UniqueFragmentNames
    • UniqueOperationNames
    • UniqueVariableNames
    • VariablesAreInputTypes
    • VariableInAllowedPosition
  • Integration examples
    • Actix-web
    • Hyper
    • Tide

License

Licensed under either of

References