0.0.1 • Published 11 months ago

@raito-cache/honojs v0.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

NPM Version Node.js CI Open Source Love MIT License

raito-honojs

Table of contents

About

raito-honojs - is an hono.js middleware and API for communicating with Raito cache server.

Getting started

!IMPORTANT Node.js 18.x+ version must be installed in your OS.

1. Install server

$ yarn add @hono
$ yarn add @raito-cache/honojs

2. Connect to Raito

import { Raito } from '@raito-cache/honojs';

const raito = new Raito(); // defaul connection is localhost:9180

3. Use middleware

import { cacheResponse } from '@raito-cache/honojs'

app.use('/api/route', cacheResponse);

API

Connect to Raito

new Raito(); // Connect to localhost:9180
new Raito(7180); // localhost:7180
new Raito('raito://localhost:9180'); // localhost:9180
new Raito('raito://localhost:9180?ttl=5000'); // localhost:9180 and ttl 5s
new Raito({
  port: 9180, // Raito port
  host: 'localhost', // Raito host
  ttl: 10000, // Cache records time to live
});

Usage

Raito class

import { Raito } from '@raito-cache/honojs';

const raito = new Raito();

await raito.set('key', { data: 'some data' }); // Create new record
await raito.set('key2', 'other data', 15000); // Create new record with 15s ttl

await raito.get('key2'); // Output: { key: 'key', data: 'other data', createdAt: Date, ttl: 15000 }
await raito.clear('key'); // Deletes record

await raito.shutdown(); // Close connection

Express.js middleware

import { cacheResponse, Raito } from '@raito-cache/honojs'

const raito = new Raito();

app.get('/api/route', cacheResponse); // Caches responses
app.get('/api/timeSensetive/data', cacheResponse(15000)); // Cache response with setting record ttl

Raito Deployment

  1. Pull docker image:
    $ docker pull stbestich/raito-cache:latest
  2. Run it
    $ docker run -e HOST=<host> -p <port>:9180 -it stbestich/raito-cache

Use with docker-compose

services:
  raito-cache:
    image: stbestich/raito-cache:latest
    ports:
      - "${PORT:-9180}:${PORT:-9180}"
      - "${PORT:-9181}:${PORT:-9181" # Define second port if you need http proxy
    env_file:
      - .env
    environment:
      NODE_ENV: production
      PORT: ${PORT:-9180}
      HOST: ${HOST:-0.0.0.0}
      TTL: ${TTL}
    tty: true
    stdin_open: true

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Changelog

Project changes are writen in changelog, see the CHANGELOG.md.

We use SemVer for versioning. For the versions available, see the tags on this repository. For the versions supported, see the SECURITY.md.

Authors

License

This project is licensed under the MIT License - see the LICENSE.md

0.0.1

11 months ago