@qeraunos/client
v1.1.10
Published
lightweight client-side caching solution for GraphQL
Downloads
9
Readme
Qeraunos Client Side Caching
Overview
Qeraunos, a lightweight GraphQL caching algorithm to meet your GraphQL caching needs. Qeraunos is a custom built middleware cache based on a mix of LFU and LRU eviction policies that adds the ability to cache GraphQL queries and mutations. With Qeraunos you have the option to either implement it utilizing client side or server side caching.
Note: if you want to cache utilizing your server please download Qeraunos/Server
Features
- Client side caching abilities harnessing the power of IndexedDB through localForage
- Efficient design with O(1) insertion, deletion, and lookup
For more complete documentation see our website and our GitHub.
Prerequisites Client Side Caching
- GraphQL integration: setting up GraphQL schemas and resolvers
- Fullstack Application: frontend sending query requests to the backend
Getting Started
Client Side Caching Installation
Install Qeraunos from npm
npm install @qeraunos/client
Import QeraunosClient from '@qeraunos/client' within a component that will be requiring a cache
import qeraunosClient from '@qeraunos/client';
Declare a new instance of QeraunosClient passing in the desired size of the cache as a number
const qeraunos = new qeraunosClient(size);
To initiate the cache and query GraphQL, simply call the qeraunos.query method within an asynchronous function and pass in a query string and /grapphql endpoint as parameters
qeraunos.query('queryString', 'GraphQL Endpoint');
When the .query method has finished executing, a response with the results returned from GraphQL will be provided. If this is the first time this has been executed, LocalForage will create a new cache within IndexedDB labeled "qeraunos", and the GraphQL query and result will be cached as key value pairs within "qeraunos".
To access the cache, open the console on your browser and navigate to Application -> Storage -> IndexedDB -> localforage -> keyvaluepairs.
You're set to go and you should find your response times drastically reduced for cached queries. Enjoy impressing your fellow software engineers with a cached implementation of GraphQL!
Contributing
We are constantly trying to improve our code so we actively welcome all pull requests! Learn how to contribute.
License
Qeraunos is MIT-licensed.
Authors
- Amrit Ramos
- Arthur Huynh
- Dennis Cheung
- Jason Hwang