From c0efb1e415f91afa3492cb9ceea898873b49f2e4 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Sun, 5 Mar 2023 08:32:59 +0100 Subject: [PATCH] =?UTF-8?q?=E2=80=9EHome=E2=80=9C=20hinzuf=C3=BCgen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Home.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 Home.md diff --git a/Home.md b/Home.md new file mode 100644 index 0000000..9a58701 --- /dev/null +++ b/Home.md @@ -0,0 +1,38 @@ +- **Clone URL**: git://caraus.tech/pub/graphql.git + +# GraphQL implementation in Haskell + +[![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) + +This is the core library that 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. +- Introspection is work in progress. + +For a more precise list of currently missing features and known limitations see +[issues](https://www.caraus.tech/projects/pub-graphql/issues). + +## GHC 9 and Aeson 2 + +Since JSON serialization support is not mandatory for GraphQL itself, current version optionally supports only Aeson 1. Aeson 2 support is provided by a companion library, [graphql-spice](https://www.caraus.tech/projects/pub-graphql-spice). Aeson 1 build supports GHC 8, Aeson 2 build - GHC 9. The default build currently uses GHC 8 and Aeson 1, this will change soon, so GHC9 and Aeson 2 (with graphql-spice) build will be the default. + +The version built can be changed with `json` flag passed to cabal. Run `cabal build --flag=+json` to build the old verison, or `--flag=-json` for the new one. `--flag` also works with other cabal commands like `test`. To choose the appropriate build in a project, `cabal.project` with the following contents can be used: + +``` +packages: . + +constraints: graphql -jso +``` + +## Documentation + +API documentation is available through +[Hackage](https://hackage.haskell.org/package/graphql). + +Further documentation will be made available in the +[Wiki](https://www.caraus.tech/projects/graphql/wiki). \ No newline at end of file