Eugen Wissner
ae2210f659
This is experimental support. The implementation is based on conduit and is boring. There is a new resolver data constructor that should create a source event stream. The executor receives the events, pipes them through the normal execution and puts them into the response stream which is returned to the user. - Tests are missing. - The executor should check field value resolver on subscription types. - The graphql function should probably return (Either ResponseEventStream Response), but I'm not sure about this. It will make the usage more complicated if no subscriptions are involved, but with the current API implementing subscriptions is more difficult than it should be. |
||
---|---|---|
.github/workflows | ||
docs/tutorial | ||
src/Language | ||
tests | ||
.gitignore | ||
CHANGELOG.md | ||
CONTRIBUTING.md | ||
graphql.cabal | ||
LICENSE | ||
package.yaml | ||
README.md | ||
Setup.hs | ||
stack.yaml |
Haskell GraphQL
GraphQL implementation in Haskell.
This implementation is relatively low-level by design, it doesn't provide any mappings between the GraphQL types and Haskell's type system and avoids compile-time magic. It focuses on flexibility instead, so other solutions can be built on top of it.
State of the work
For now this only provides a parser and a printer for the GraphQL query language
and allows to execute queries and mutations using the given schema, but without
the validation step. But the idea is to be a Haskell port of
graphql-js
.
For the list of currently missing features see issues marked as "not implemented".
Documentation
API documentation is available through Hackage.
You'll also find a small tutorial with some examples under docs/tutorial.
Further information
- Contributing guidelines.
- Changelog – this one contains the most recent changes; individual changelogs for specific versions can be found on Hackage.
Contact
Suggestions, contributions and bug reports are welcome.
Should you have questions on usage, please open an issue and ask – this helps to write useful documentation.
Feel free to contact on Slack in #haskell on GraphQL. You can obtain an invitation here.