1.0.7 • Published 1 year ago

@qeraunos/server v1.0.7

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

Qeraunos Server Side Caching

  1. Prerequisites
  2. Getting Started
  3. Contributing
  4. Authors

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.

Features

  • Server side caching abilities with our custom cache, or with the option to add Redis to extend your server side caching capacity
  • Caching mutations on server side
  • Efficient design with O(1) insertion, deletion, and lookup

For more complete documentation see our website and our GitHub.

Prerequisites

  • GraphQL integration: setting up GraphQL schemas and resolvers
  • Fullstack Application: frontend sending query requests to the backend
  • (Optional) Redis: If you want to integrate Redis DB into Qeraunos

Getting Started

Server Side Caching Installation

  1. Install Qeraunos from npm.
    npm install @qeraunos/server
  2. Import Qeraunos into your server file.
    const Qeraunos = require('@qeraunos/server');
  3. Import all your GraphQL schemas into one file like so.

    const schema = require('./schema/schema');
  4. If not using Redis, create an instance of Qeraunos by inputting just your schema if you're not using redis. Below your instance, set what size you'd want your cache to be by calling qeraunos.setSize. Then skip step 4.

    const qeraunos = new Qeraunos(schema);
    qeraunos.setSize(num);
  5. If using Redis, create an instance of qeraunos by passing in your schema, redis host, redis port, and redis password respectively, like below.

    const qeraunos = new Qeraunos(schema, RedisHost, RedisPort, RedisPassword);
  6. On your server file for your graphQL endpoint of "/graphql", simply put in qeraunos.query as your middleware and return res.locals back to your front end like this.

    app.use('/graphql', qeraunos.query, (req: Request, res: Response) => {
      return res.status(200).send(res.locals);
    });
  7. Overall, your server file might look something like this.

  8. You're set to go and should find your query response times drastically reduced for cached queries!

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
1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago