ccelineleung / Quell

Quell is an easy-to-use, lightweight JavaScript library providing a client- and server-side caching solution for GraphQL. Use Quell to prevent redundant client-side API requests and to minimize costly server-side response latency.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

License: MIT AppVeyor contributions welcome

Quell

Quell is an easy-to-use, lightweight JavaScript library providing a client- and server-side caching solution and cache invalidation for GraphQL.

Accelerated by OS Labs and developed by David Lopez,Sercan Tuna,Idan Michael,Tom Pryor, Chang Cai, Robert Howton, Joshua Jordan, Jinhee Choi, Nayan Parmar, Tashrif Sanil, Tim Frenzel, Robleh Farah, Angela Franco, Ken Litton, Thomas Reeder, Andrei Cabrera, Dasha Kondratenko, Derek Sirola, Xiao Yu Omeara, Nick Kruckenberg, Mike Lauri, Rob Nobile and Justin Jaeger.

Features

  • Cache Invalidation implemented in server-side for (add, update, and delete) mutation service newly implemented
  • Client-side caching utilizing LokiJS
  • Server-side caching utilizing a configurable Redis in-memory data store with batching
  • Automatic unique cache key generation
  • Partial and exact match query caching
  • Programmatic rebuilding of GraphQL queries to fetch only the minimum data necessary to complete the response based upon current cache contents
  • A easy-to-use Chrome Developer Tools extension designed for Quell users. With this extension, users can:
    • Inspect and monitor the latency of client-side GraphQL/Quell requests
    • Make and monitor the latency of GraphQL/Quell requests to a specified server endpoint
    • View server-side cache data and contents, with the ability to manually clear the cache
    • Features require zero-to-minimal configuration and can work independently of @quell/client and @quell/server

Installation

Quell-Client and Quell-Server

Quell is divided into two npm packages:

  • Download @quell/client from npm in your terminal with npm i @quell/client
  • Download @quell/server from npm in your terminal with npm i @quell/server

Installing and Connecting a Redis Server

If not already installed on your server, install Redis.

  • Mac-Homebrew:
    • At the terminal, type brew install redis
    • After installation completes, type redis-server
    • Your server should now have a Redis database connection open (note the port on which it is listening)
  • Linux or non-Homebrew:
    • Download appropriate version of Redis from redis.io/download
    • Follow installation instructions
    • Once Redis is successfully installed, follow instructions to open a Redis database connection (note the port on which it is listening)

Usage Notes

  • Currently, Quell can cache 1) query-type requests without variables or directives and 2) mutation-type requests (add, update, and delete) with cache invalidation implemented. Quell will still process other requests, but will not cache the responses.

Quell Developer Tool

Quell Developer Tool is currently available as a Chrome Developer Tools extension. The easiest way to get it is to add it from the Chrome Web Store.

Documentation

Contribute to Quell

Interested in making a contribution to Quell? Find our open-source contribution guidelines here.

Thank you for your interest and support! Team Quell

About

Quell is an easy-to-use, lightweight JavaScript library providing a client- and server-side caching solution for GraphQL. Use Quell to prevent redundant client-side API requests and to minimize costly server-side response latency.

License:MIT License


Languages

Language:JavaScript 65.9%Language:TypeScript 31.5%Language:SCSS 2.3%Language:HTML 0.3%Language:Dockerfile 0.0%