176 stable releases

new 2.0.0-alpha.20 Sep 28, 2020
1.18.2 Sep 23, 2020
1.16.15 Jul 30, 2020
1.6.8 Mar 31, 2020
0.10.8 Mar 10, 2020

#14 in Asynchronous

Download history 1255/week @ 2020-06-08 1016/week @ 2020-06-15 656/week @ 2020-06-22 1005/week @ 2020-06-29 1399/week @ 2020-07-06 1146/week @ 2020-07-13 1539/week @ 2020-07-20 804/week @ 2020-07-27 667/week @ 2020-08-03 1170/week @ 2020-08-10 1008/week @ 2020-08-17 852/week @ 2020-08-24 978/week @ 2020-08-31 1527/week @ 2020-09-07 1718/week @ 2020-09-14 2003/week @ 2020-09-21

5,245 downloads per month
Used in 7 crates (6 directly)

MIT/Apache

625KB
17K 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 (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

Crate features

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

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

Benchmark

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

cd benchmark

#measure all with system malloc
cargo bench

#measure only chat run
cargo bench -- "chat run"

#measure all with jemalloc
cargo bench --features jemalloc

#measure only simple run with jemalloc 
cargo bench --features jemalloc -- "simple run"

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

Read more here: https://bheisler.github.io/criterion.rs/book/criterion_rs.html

Integrations

License

Licensed under either of

References

Contribute

Welcome to contribute !

Dependencies

~15MB
~381K SLoC