| CARVIEW |
airgql: Automatically generate a GraphQL API for an SQLite database
AirGQL automatically generates a GraphQL API for SQLite databases. It analyses the database schema and builds the corresponding GraphQL introspection and data resolvers.
The generated API supports all basic CRUD operations and even complex queries and mutations including filters and pagination. It's the perferct solution for easily integrating GraphQL support into existing Haskell servers.
AirGQL is part of the Airsequel project, which provides a complete solution for building web applications on top of SQLite databases.
[Skip to Readme]
Modules
[Index] [Quick Jump]
Flags
Manual Flags
| Name | Description | Default |
|---|---|---|
| lib-only | Only build/install the library and not the CLI tool. | Disabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- airgql-0.7.1.3.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
| Versions [RSS] | 0.7.1.0, 0.7.1.1, 0.7.1.2, 0.7.1.3 (info) |
|---|---|
| Dependencies | aeson (>=2.1.2.1 && <2.3), airgql, base (>=4.18.2 && <4.19), blaze-markup (>=0.8.3 && <0.9), bytestring (>=0.11.5 && <0.12), cmdargs (>=0.10.22 && <0.11), conduit (>=1.3.5 && <1.4), directory (>=1.3.8 && <1.4), double-x-encoding (>=1.2.1 && <1.3), exceptions (>=0.10.7 && <0.11), extra (>=1.7.14 && <1.8), filepath (>=1.4.200 && <1.5), githash (>=0.1.7 && <0.2), graphql (>=1.2.0.1 && <1.4), graphql-spice (>=1.0.2 && <1.1), http-client (>=0.7.17 && <0.8), http-types (>=0.12.4 && <0.13), process (>=1.6.17 && <1.7), protolude (>=0.3.4 && <0.4), scientific (>=0.3.7 && <0.4), servant (>=0.20.1 && <0.21), servant-blaze (>=0.9.1 && <0.10), servant-docs (>=0.13 && <0.14), servant-multipart (>=0.12.1 && <0.13), servant-server (>=0.20 && <0.21), simple-sql-parser (>=0.6.1 && <0.8), sqlite-simple (>=0.4.19 && <0.5), template-haskell (>=2.20.0 && <2.21), text (>=2.0.2 && <2.1), time (>=1.12.2 && <1.13), typed-process (>=0.2.11 && <0.3), unix (>=2.8.4 && <2.9), unordered-containers (>=0.2.20 && <0.3), wai (>=3.2.4 && <3.3), wai-cors (>=0.2.7 && <0.3), wai-extra (>=3.1.14 && <3.2), warp (>=3.3.31 && <3.4) [details] |
| License | AGPL-3.0-or-later |
| Copyright | 2024 Feram GmbH |
| Author | Feram GmbH |
| Maintainer | adrian@feram.io |
| Uploaded | by adrian at 2024-06-08T15:10:13Z |
| Category | Web, Database, SQL, SQLite, GraphQL, Servant, CLI Tool |
| Home page | https://github.com/Airsequel/AirGQL |
| Distributions | |
| Reverse Dependencies | 1 direct, 0 indirect [details] |
| Executables | airgql |
| Downloads | 277 total (25 in the last 30 days) |
| Rating | 2.0 (votes: 1) [estimated by Bayesian average] |
| Your Rating |
|
| Status | Docs uploaded by user [build log] All reported builds failed as of 2024-06-08 [all 2 reports] |
Readme for airgql-0.7.1.3
[back to package description]AirGQL
Automatically generate a GraphQL API for an SQLite database.

How It Works
It analyses the database schema and builds the corresponding GraphQL introspection and data resolvers.
The generated API supports all basic CRUD operations and even complex queries and mutations including filters and pagination.
It is designed to be either used a Haskell library for integrating GraphQL support into existing servers or as a standalone CLI app for quickly spinning up a backend.
AirGQL is the core component of Airsequel, which provides a complete solution for building web applications on top of SQLite databases.
Installation
CLI Tool
You can install the CLI app using Stack:
git clone https://github.com/Airsequel/AirGQL
cd AirGQL
make install
Library
You can also use AirGQL in your Haskell project
by adding the Hackage package
as a dependency to your package.yaml or your *.cabal file:
dependencies:
- airgql
- …
Also set the lib-only flag in your stack.yaml file
to avoid irrelevant errors:
flags:
airgql:
lib-only: true
Usage
CLI App
Run following command to start a GraphQL API server for an existing SQLite database:
stack run -- serve tests/example.sqlite
Then you can query the API like this:
http POST https://localhost:4189/graphql \
query='query {
songs(limit: 2) {
id
title
}
}'
It also supports mutations:
http POST https://localhost:4189/graphql \
query='mutation {
insert_songs(objects: [{ title: "New Song" }]) {
returning {
id
title
}
}
}'
Check out the documentation at docs.airsequel.com/graphql-api for more details on how to use all of its GraphQL features.
Library
Check out the code in app/Main.hs file for an example of how to build a simple Servant server leveraging AirGQL.