Go to file
Ivan Plesskih 2922c1bb4b Moved benchmark from side repo 2020-06-01 21:05:37 +05:00
.github/workflows Update book.yml 2020-05-28 08:37:21 +08:00
async-graphql-actix-web Release 1.14.10 2020-06-01 19:42:47 +08:00
async-graphql-derive Release 1.14.8 2020-05-31 11:59:20 +08:00
async-graphql-lambda Add #![forbid(unsafe_code)] to all sub crates 2020-05-29 17:33:19 +08:00
async-graphql-parser Release 1.14.7 2020-05-29 17:35:49 +08:00
async-graphql-tide Release 1.14.10 2020-06-01 19:42:47 +08:00
async-graphql-warp Release 1.14.10 2020-06-01 19:42:47 +08:00
benchmark Moved benchmark from side repo 2020-06-01 21:05:37 +05:00
docs Merge pull request #134 from nm-infy/nm-infy-patch-2 2020-06-01 19:16:26 +08:00
src Add ability to exclude Subscription from _service.sdl #131 2020-06-01 19:36:19 +08:00
tests Fix incorrect variable substitution. #126 2020-05-31 11:54:07 +08:00
.gitignore Moved benchmark from side repo 2020-06-01 21:05:37 +05:00
Cargo.toml Moved benchmark from side repo 2020-06-01 21:05:37 +05: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 Moved benchmark from side repo 2020-06-01 21:05:37 +05:00
feature-comparison.md Add StreamResponse type 2020-05-21 11:36:44 +08:00

README.md

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.

Stability: Unstable & Experimental

This project doesn't currently follow Semantic Versioning (SemVer), and there can be breaking changes on any version numbers. We will begin following SemVer once the project reaches v2.0.0

Even though this project is above v1.0.0, we are rapidly changing and improving the API. This has caused versioning problems that aren't easily resolved because the project became popular very quickly (it was only started in March 2020).

We currently plan to start following SemVer once we reach the v2.0.0 release, which will happen once the API starts to stabilize. Unfortunately, we don't currently have the timeline for this.

In accordance with Rust's policy on pre-1.0.0 crates, we will try to keep breaking changes limited to minor version changes, but if things don't seem to be compiling after an upgrade, it is likely you'll need to dive into compiler errors to update some syntax that changed. Feel free to open an issue if something seems weird!

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
cargo bench

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

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)
  • Custom extension
  • Apollo Tracing extension
  • Limit query complexity/depth
  • Error Extensions
  • Apollo Federation

Integrations

License

Licensed under either of

References

Contribute

Welcome to contribute !