GraphQL implementation in Haskell
Go to file
Eugen Wissner ae2210f659 Support subscriptions
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.
2020-07-14 19:37:56 +02:00
.github/workflows Check in .cabal 2020-07-03 07:00:37 +02:00
docs/tutorial Merge Trans and Type.Out modules 2020-07-02 07:33:03 +02:00
src/Language Support subscriptions 2020-07-14 19:37:56 +02:00
tests Support subscriptions 2020-07-14 19:37:56 +02:00
.gitignore Check in .cabal 2020-07-03 07:00:37 +02:00
CHANGELOG.md Support subscriptions 2020-07-14 19:37:56 +02:00
CONTRIBUTING.md Write contrinbuting guidelines 2020-04-12 08:32:39 +02:00
graphql.cabal Support subscriptions 2020-07-14 19:37:56 +02:00
LICENSE Update copyright 2020-01-21 23:27:21 +01:00
package.yaml Support subscriptions 2020-07-14 19:37:56 +02:00
README.md Merge Trans and Type.Out modules 2020-07-02 07:33:03 +02:00
Setup.hs Initial commit 2015-09-12 12:54:05 +02:00
stack.yaml Support subscriptions 2020-07-14 19:37:56 +02:00

Haskell GraphQL

Hackage Version Build Status License

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

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.