4 releases

0.1.3 Feb 6, 2024
0.1.2 Nov 15, 2023
0.1.1 Nov 15, 2023
0.1.0 Oct 31, 2023

#1914 in Database interfaces

Apache-2.0

53KB
1K SLoC

graphql-schema-validation

crates.io docs.rs

This crate implements GraphQL SDL schema validation according to the 2021 version of the GraphQL spec.

Scope:

  • All the spec and nothing but the spec.
  • Query documents are out of scope, we only validate schemas.
  • The error messages should be as close as possible to the style of other GraphQL schema validation libraries.

Example

use graphql_schema_validation::validate;

fn main() {
  let graphql = "schema { query: MyQueryDoesNotExist }";

  let diagnostics = validate(graphql);

  assert!(diagnostics.has_errors());

  let formatted_diagnostics = diagnostics.iter().map(|err| format!("{}", err)).collect::<Vec<String>>();
  assert_eq!(formatted_diagnostics, ["Cannot set schema query root to unknown type `MyQueryDoesNotExist`"]);
}

Status

The crate is being actively developed and maintained. It covers the spec completely and faithfully, as far as we are aware.

Dependencies

~6MB
~112K SLoC