You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> **Note: this crate is still under development (see roadmap below)**
6
-
7
5
The [`graphql_tools` crate](https://crates.io/crates/graphql-tools) implements tooling around GraphQL for Rust libraries. Most of the tools are based on `trait`s and `struct`s implemented in [`graphql_parser` crate](https://crates.io/crates/graphql-parser).
8
6
9
7
The goal of this library is to create a common layer of tools that has similar/improved APIs to [`graphql-js` reference implementation](https://github.com/graphql/graphql-js) and [`graphql-tools` from the JS/TS ecosystem](https://github.com/ardatan/graphql-tools).
@@ -25,23 +23,16 @@ Or, if you are using [`cargo-edit`](https://github.com/killercup/cargo-edit):
25
23
cargo add graphql-tools
26
24
```
27
25
28
-
### Roadmap and progress
29
-
30
-
-[ ] Better documentation
31
-
-[x] AST Visitor for GraphQL schema (`graphql_parser::schema::Document`)
32
-
-[x] AST Visitor for GraphQL operations (`graphql_parser::operation::Document`)
33
-
-[x] AST Visitor with TypeInfo
34
-
-[x] AST tools (ongoing)
35
-
-[x]`struct` extensions
36
-
-[x] GraphQL Validation engine
37
-
-[x] Validation rules
38
-
-[x] GraphQL operations transformer
26
+
By default, this crate is using the [`graphql-parser`](https://github.com/graphql-rust/graphql-parser) library for parsing. If you wish to use an alternative implementation such as [`graphql-hive/graphql-parser-hive-fork`](https://github.com/graphql-hive/graphql-parser-hive-fork), use the following `features` setup:
39
27
40
-
> If you have an idea / missing feature, feel free to open an issue / start a GitHub discussion!
28
+
```toml
29
+
[dependencies]
30
+
graphql-tools = { version = "...", features = "graphql_parser_fork", default-features = false }
31
+
```
41
32
42
33
#### Validation Rules
43
34
44
-
> This comparison is based on `graphql-js` refernece implementation.
35
+
> This comparison is based on `graphql-js` refernece implementation.
45
36
46
37
-[x] ExecutableDefinitions (not actually needed)
47
38
-[x] UniqueOperationNames
@@ -68,4 +59,4 @@ cargo add graphql-tools
68
59
-[x] ProvidedRequiredArguments
69
60
-[x] VariablesInAllowedPosition
70
61
-[x] OverlappingFieldsCanBeMerged
71
-
-[ ] UniqueInputFieldNames (blocked by https://github.com/graphql-rust/graphql-parser/issues/59)
62
+
-[ ] UniqueInputFieldNames (blocked by https://github.com/graphql-rust/graphql-parser/issues/59)
0 commit comments