<commit_before># DataGraph

An experimental project to explore what a GraphQL server with optimal IO concurrency and batching would look like.

# Resources

## Haxl

- Useful Haxl tutorial: http://gelisam.blogspot.com/2015/01/haxl-anti-tutorial.html
- How to write a data source: https://gist.github.com/gelisam/0549eb2a292f86ca2574/4ef520bd40e2d9a2b660e0fb7f4baddabcaa0eed
- Another Haxl tutorial: https://simonmar.github.io/posts/2015-10-20-Fun-With-Haxl-1.html
- Example Data Source: https://github.com/simonmar/haskell-eXchange-2015/blob/3ae0e34a051201eb77721bee2e940ec1f764a0df/BlogDataSource.hs
- Haxl.Prelude: https://hackage.haskell.org/package/haxl-0.3.1.0/docs/Haxl-Prelude.html
- Haxl.Core: https://hackage.haskell.org/package/haxl-0.3.1.0/docs/Haxl-Core.html

## GraphQL

- The GraphQL spec: https://facebook.github.io/graphql/
- Star Wars schema stuff: https://github.com/graphql/graphql-js/tree/master/src/__tests__

# TODO

- mutations, incl. sequencing
- nullability
- input coercion
- eliminate as much haxl / graphql boilerplate as possible
- errors (overall envelope: {data: {<query>: <response>}, errors: [...]}
- query tests from https://github.com/graphql/graphql-js/blob/master/src/__tests__/starWarsQueryTests.js
- type checking
<commit_msg>list things that are done<commit_after># DataGraph

An experimental project to explore what a GraphQL server with optimal IO concurrency and batching would look like.

# Resources

## Haxl

- Useful Haxl tutorial: http://gelisam.blogspot.com/2015/01/haxl-anti-tutorial.html
- How to write a data source: https://gist.github.com/gelisam/0549eb2a292f86ca2574/4ef520bd40e2d9a2b660e0fb7f4baddabcaa0eed
- Another Haxl tutorial: https://simonmar.github.io/posts/2015-10-20-Fun-With-Haxl-1.html
- Example Data Source: https://github.com/simonmar/haskell-eXchange-2015/blob/3ae0e34a051201eb77721bee2e940ec1f764a0df/BlogDataSource.hs
- Haxl.Prelude: https://hackage.haskell.org/package/haxl-0.3.1.0/docs/Haxl-Prelude.html
- Haxl.Core: https://hackage.haskell.org/package/haxl-0.3.1.0/docs/Haxl-Core.html

## GraphQL

- The GraphQL spec: https://facebook.github.io/graphql/
- Star Wars schema stuff: https://github.com/graphql/graphql-js/tree/master/src/__tests__

# WORKING

- queries
- redis backend
- backend IO batching
- benchmarks

# TODO

- mutations, incl. sequencing
- nullability
- input coercion
- eliminate as much haxl / graphql boilerplate as possible
- errors (overall envelope: {data: {<query>: <response>}, errors: [...]}
- query tests from https://github.com/graphql/graphql-js/blob/master/src/__tests__/starWarsQueryTests.js
- type checking

{'fraction_non_alphanumeric': 0.12734225621414913, 'fraction_numerical': 0.061950286806883366, 'mean_word_length': 4.360655737704918, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 16, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 4, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6140996', 'n_tokens_mistral': 1068, 'n_tokens_neox': 967, 'n_words': 178}