Go to file
Dominik Spicher b020ce5aee tests/federation: compare export_sdl against expected schema
This commit adds logic to two unit tests where the schema
export is compared against expected output cached in two
schema files.

This is intended to help prevent bugs like the ones fixed in
faf407b or the immediately succeeding commit, as unexpected
changes to schema export will become apparent in the commit
diff, easing reviews.

When legitimately changing the export output behaviour,
the test suite just needs to be run twice, as the unit-tests
automatically overwrite the files with the new version.

This unit-test approach is inspired by

https://matklad.github.io/2022/03/26/self-modifying-code.html
2022-08-29 22:23:28 +02:00
.github Update MSRV to 1.59.0 2022-08-29 13:54:36 +08:00
derive Release 4.0.12 2022-08-29 14:17:32 +08:00
docs Add more information to dataloader docs 2022-08-24 23:14:39 +01:00
examples@fa8fc5dde0 Fixed OneofObject restriction on inner types being unique. #923 2022-05-14 16:43:28 +08:00
integrations Release 4.0.12 2022-08-29 14:17:32 +08:00
parser Release 4.0.12 2022-08-29 14:17:32 +08:00
src Merge pull request #1043 from dspicher/more-trailing-spaces 2022-08-29 13:49:53 +08:00
tests tests/federation: compare export_sdl against expected schema 2022-08-29 22:23:28 +02:00
value Release 4.0.12 2022-08-29 14:17:32 +08:00
.gitignore Moved benchmark from side repo 2020-06-01 21:05:37 +05:00
.gitmodules Update dependencies and make examples submodule 2020-10-15 20:48:06 +01:00
.rustfmt.toml Clippy clean 2022-04-28 12:14:23 +08:00
ARCHITECTURE.md Rename InputValueType to InputType and OutputValueType to OutputType. 2020-12-11 15:37:50 +08:00
Cargo.toml Release 4.0.12 2022-08-29 14:17:32 +08:00
CHANGELOG.md Update MSRV to 1.59.0 2022-08-29 13:54:36 +08:00
feature-comparison.md Update feature-comparison.md 2022-03-04 21:37:15 +08:00
LICENSE-APACHE Release 2.10.3 2021-10-12 18:22:48 +08:00
LICENSE-MIT Release 2.10.3 2021-10-12 18:22:48 +08:00
README.md Update MSRV to 1.59.0 2022-08-29 13:54:36 +08:00
SECURITY.md Fix possible stack overflow in validator. 2022-01-28 09:46:14 +08:00

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 !