#futures #async #graphql

async-graphql

A GraphQL server library implemented in Rust

318 stable releases

Uses new Rust 2021

new 4.0.0 May 17, 2022
3.0.38 Apr 9, 2022
3.0.37 Mar 30, 2022
3.0.19 Dec 30, 2021
0.10.8 Mar 10, 2020

#3 in Asynchronous

Download history 12588/week @ 2022-01-29 12962/week @ 2022-02-05 16471/week @ 2022-02-12 16099/week @ 2022-02-19 16365/week @ 2022-02-26 18900/week @ 2022-03-05 16979/week @ 2022-03-12 17907/week @ 2022-03-19 15842/week @ 2022-03-26 17669/week @ 2022-04-02 14931/week @ 2022-04-09 15637/week @ 2022-04-16 16842/week @ 2022-04-23 18512/week @ 2022-04-30 18193/week @ 2022-05-07 24630/week @ 2022-05-14

81,220 downloads per month
Used in 48 crates (41 directly)

MIT/Apache

1MB
27K SLoC

A GraphQL server library implemented in Rust

Async-graphql is a high-performance server-side library that supports all GraphQL specifications.

Safety

This crate uses #![forbid(unsafe_code)] to ensure everything is implemented in 100% Safe Rust.

Features

  • Fully supports async/await
  • Type safety
  • Rustfmt friendly (Procedural Macro)
  • Custom scalars
  • Minimal overhead
  • Easy integration (poem, actix_web, tide, warp, rocket ...)
  • Upload files (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 Studio

Apollo Studio is a cloud platform that helps you build, monitor, validate, and secure your organization's data graph. An existing extension is available for this crate here

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]

Integrations

Who's using Async-graphql in production?

Community Showcase

  • rust-actix-graphql-sqlx-postgresql Using GraphQL with Rust and Apollo Federation
  • entity-rs A simplistic framework based on TAO, Facebook's distributed database for Social Graph.
  • vimwiki-server Provides graphql server to inspect and manipulate vimwiki files.
  • Diana Diana is a GraphQL system for Rust that's designed to work as simply as possible out of the box, without sacrificing configuration ability.
  • cindythink
  • sudograph

Blog Posts

License

Licensed under either of

References

Contribute

Welcome to contribute !

Dependencies

~8–13MB
~319K SLoC