„Home“ hinzufügen

Eugen Wissner 2023-03-05 08:32:59 +01:00
parent ae60c4ef43
commit c0efb1e415
1 changed files with 38 additions and 0 deletions

38
Home.md Normal file

@ -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).