Giter VIP home page Giter VIP logo

nicholas-l-ly / quell Goto Github PK

View Code? Open in Web Editor NEW

This project forked from open-source-labs/quell

0.0 0.0 0.0 26.5 MB

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.

Home Page: https://www.quell.dev/

License: MIT License

JavaScript 23.08% TypeScript 74.42% HTML 0.12% SCSS 2.39%

quell's Introduction

License: MIT 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.

JavaScript NodeJS Express.js TypeScript Jest Testing-Library Redis GraphQL React Postgres MySQL MongoDB

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

Features

  • IP-Rate Limiting to protect your server.
  • Successfully handling cache mutations with cache invalidation.
  • Quell/server offers optional depth and cost limiting middleware to protect your GraphQL endpoint! To use, please explore the @quell/server readme.
  • Server-side cache now caches entire queries in instances where it is unable to cache individual datapoints.
  • Client-side caching utilizing LokiJS.
  • Server-side caching utilizing a configurable Redis in-memory data store with batching.
  • 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

Demo

The first bar represents an uncached client-side query and the second and third bars represent the response time of a cached request (0 ms).

A demonstration of how Quell can be implemented to protect against costly network requests.

Try Quell out here

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. Please feel free to also review the larger future direction for Quell in the Client and Server readme's.

Thank you for your interest and support!

-Team Quell

Quell Contributors

Accelerated by OS Labs and developed by Angelo Chengcuenca, Emily Hoang, Keely Timms, Yusuf Bhaiyat, Hannah Spencer, Garik Asplund, Katie Sandfort, Sarah Cynn, Rylan Wessel, Alex Martinez, Cera Barrow, Jackie He, Zoe Harper, 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.

quell's People

Contributors

robnobile avatar roberthowton avatar xyomeara avatar amchengcuenca avatar michaellauri avatar dasha-k avatar nomtomnom avatar ccai89 avatar keelyt avatar kruckenberg avatar andreicabrerao avatar idanmichael avatar davidmplopez avatar tashrifsanil avatar cerab avatar yuomeara avatar kenlitton avatar jjordan-90 avatar turmbeoz avatar emilythoang avatar jcroadmovie avatar ajfranco18 avatar justinjaeger avatar contrairezoe avatar farahrobleh avatar xpiose avatar lnielsen209 avatar dsirola1 avatar yusuf-bha avatar srcntuna avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.