- Notifications
You must be signed in to change notification settings - Fork2
A native Go GraphQL parser.
License
kuroko/go-graphqlparser
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Awork in progress native Go GraphQL parser. Our aim is to produce an idiomatic, and extremelyfast GraphQL parser that adheres to theJune 2018 GraphQL specification.
- Lexer
- Parser (in progress)
- Query parsing
- Type system parsing
- Consistent, helpful errors
- Validation
Performance is one of this project's main goals, as such, we've kept a keen eye on benchmarks andtried to ensure that our benchmarks are fair, and reasonably comprehensive. Our results so far areshown below.
Benchmarks:
$ go test -bench=. -benchmem -benchtime=10sgoos: linuxgoarch: amd64pkg: github.com/bucketd/go-graphqlparser/languageBenchmarkLexer/bucketd-8 10000000 1866 ns/op 320 B/op 2 allocs/opBenchmarkLexer/graphql-go-8 1000000 10913 ns/op 1828 B/op 30 allocs/opBenchmarkLexer/vektah-8 5000000 3080 ns/op 1760 B/op 8 allocs/opBenchmarkTypeSystemParser/tsQuery/bucketd-8 3000000 4205 ns/op 2480 B/op 38 allocs/opBenchmarkTypeSystemParser/tsQuery/vektah-8 2000000 7819 ns/op 6000 B/op 91 allocs/opBenchmarkParser/normalQuery/bucketd-8 1000000 10934 ns/op 7552 B/op 82 allocs/opBenchmarkParser/normalQuery/graphql-go-8 500000 40478 ns/op 26983 B/op 736 allocs/opBenchmarkParser/normalQuery/vektah-8 1000000 20071 ns/op 15792 B/op 243 allocs/opBenchmarkParser/tinyQuery/bucketd-8 30000000 460 ns/op 448 B/op 7 allocs/opBenchmarkParser/tinyQuery/graphql-go-8 10000000 1504 ns/op 1320 B/op 35 allocs/opBenchmarkParser/tinyQuery/vektah-8 20000000 821 ns/op 984 B/op 13 allocs/opPASSok github.com/bucketd/go-graphqlparser/language190.444sTest machine info:
- CPU: Intel Core i7-7700K @ 8x 5.0GHz
- RAM: 16GiB 3200MHz DDR4
- OS: Arch Linux 5.0.4-arch1-1-ARCH
- Go: version go1.12.1 linux/amd64
The benchmark code is included in this repository, please feel free to take a look at it yourself,if you spot a mistake in our benchmark code that would give us an unfair advantage (ordisadvantage!) then please let us know.
MIT
About
A native Go GraphQL parser.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors3
Uh oh!
There was an error while loading.Please reload this page.