A micro-framework for bidirectional mapping between relational datastores and GraphQL APIs (powered by Node.js)
MIT License
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:
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.