2020-08-26 18:58:48 +02:00
|
|
|
# GraphQL implementation in Haskell
|
2015-09-12 12:54:05 +02:00
|
|
|
|
2020-11-02 08:24:48 +01:00
|
|
|
[![Simple Haskell](https://www.simplehaskell.org/badges/badge.svg)](https://www.simplehaskell.org)
|
|
|
|
[![CI/CD](https://img.shields.io/badge/CI-CD-brightgreen)](https://build.caraus.tech/go/pipelines)
|
|
|
|
|
2019-08-04 12:38:01 +02:00
|
|
|
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
|
2019-08-26 10:14:46 +02:00
|
|
|
compile-time magic. It focuses on flexibility instead, so other solutions can
|
|
|
|
be built on top of it.
|
2019-08-04 12:38:01 +02:00
|
|
|
|
|
|
|
## State of the work
|
|
|
|
|
2020-08-22 06:39:52 +02:00
|
|
|
For now this library provides:
|
|
|
|
|
|
|
|
- Parser for the query and schema languages, as well as a printer for the query
|
|
|
|
language (minimizer and pretty-printer).
|
|
|
|
- Data structures to define a type system.
|
|
|
|
- Executor (queries, mutations and subscriptions are supported).
|
|
|
|
- Validation is work in progress.
|
|
|
|
- Introspection isn't available yet.
|
|
|
|
|
|
|
|
But the idea is to be a Haskell port of
|
2019-08-04 12:38:01 +02:00
|
|
|
[`graphql-js`](https://github.com/graphql/graphql-js).
|
|
|
|
|
2020-10-29 22:51:36 +01:00
|
|
|
For a more precise list of currently missing features see
|
|
|
|
[issues](https://www.caraus.tech/projects/pub-graphql/issues).
|
2019-08-04 12:38:01 +02:00
|
|
|
|
|
|
|
## Documentation
|
|
|
|
|
|
|
|
API documentation is available through
|
2020-04-12 08:32:39 +02:00
|
|
|
[Hackage](https://hackage.haskell.org/package/graphql).
|
2019-08-04 12:38:01 +02:00
|
|
|
|
2020-10-29 22:51:36 +01:00
|
|
|
Further documentation will be made available in the
|
|
|
|
[Wiki](https://www.caraus.tech/projects/pub-graphql/wiki).
|