...
1gqlparser [](https://circleci.com/gh/vektah/gqlparser) [](https://goreportcard.com/report/github.com/vektah/gqlparser) [](https://coveralls.io/github/vektah/gqlparser?branch=master)
2===
3
4This is a parser for graphql, written to mirror the graphql-js reference implementation as closely while remaining idiomatic and easy to use.
5
6spec target: June 2018 (Schema definition language, block strings as descriptions, error paths & extension)
7
8This parser is used by [gqlgen](https://github.com/99designs/gqlgen), and it should be reasonablly stable.
9
10Guiding principles:
11
12 - maintainability: It should be easy to stay up to date with the spec
13 - well tested: It shouldnt need a graphql server to validate itself. Changes to this repo should be self contained.
14 - server agnostic: It should be usable by any of the graphql server implementations, and any graphql client tooling.
15 - idiomatic & stable api: It should follow go best practices, especially around forwards compatibility.
16 - fast: Where it doesnt impact on the above it should be fast. Avoid unnecessary allocs in hot paths.
17 - close to reference: Where it doesnt impact on the above, it should stay close to the [graphql/graphql-js](https://github.com/graphql/graphql-js) reference implementation.
View as plain text