Eugen Wissner
09135c581a
Let's try MonadThrow/MonadCatch. It looks nice at a first glance. The monad transformer stack contains only the ReaderT, less lifts are required. Exception subtyping is easier, the user can (and should) define custom error types and throw them. And it is still possible to use pure error handling, if someone doesn't like runtime exceptions or need to run a query in a pure environment. Fixes #42. |
||
---|---|---|
.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.