Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 1,000,000+ packages pre-installed, including greldal with all npm packages installed. Try it out:

require("fp-ts/package.json"); // fp-ts is a peer dependency. require("graphql/package.json"); // graphql is a peer dependency. require("io-ts/package.json"); // io-ts is a peer dependency. require("knex/package.json"); // knex is a peer dependency. var greldal = require("greldal")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

greldal v0.15.1

A simple micro-framework for exposing your relational datastore as a GraphQL API (powered by Node.js).

A simple micro-framework to expose your relational datastore as a GraphQL API (powered by Node.js).

Documentation | Issues | API Docs

GraphQL is a powerful solution for making your server side data available to clients through a flexible and bandwidth efficient API.

However, if your primary data source is a relational database then mapping GraphQL queries to efficient database queries can be arduous. With naive hierarchical resolution of resolvers it is very easy to end up with inefficient data access patterns and N+1 queries. Caching strategies, dataloader etc. partly mitigate the problem but the fact remains that you are not taking the full advantage of the capabilities of your powerful datastore.

GRelDAL is a low level library that gives you a declaritive API to map your relational data sources to GraphQL APIs. It is data store agnostic thanks to Knex, the underlying data access library that supports all common databases. Currently MySQL, PostgreSQL and SQLite are well tested.

When you generate your GraphQL API through GRelDAL, you can choose exactly how:

  • Your database table schema maps to GraphQL types.
  • Your GraphQL queries are mapped to SQL queries, including:
    • which tables can be joined under which circumstances
    • when batched queries can be performed
    • when related rows can be fetched in advance in bulk, etc.

Plus, unlike many other similar solutions, GRelDAL has first class support for subscriptions, stored procedures, user defined functions, JSON/XML/binary data and custom column types.

Build Status FOSSA Status


FOSSA Status

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free