Socket
Socket
Sign inDemoInstall

dinache

Package Overview
Dependencies
50
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    dinache

Restful light weight in-memory cache server built on top of node.js and dinoloop.


Version published
Weekly downloads
2
Maintainers
1
Created
Weekly downloads
 

Readme

Source

npm version downloads Known Vulnerabilities

Dinache

Dinache is an open source RESTFUL light weight in-memory cache server built on top of node.js and dinoloop.

Why Dinache?

You can quickly setup a cache server via HTTP endpoint by installing a npm package. HTTP and JSON format are supported across variety of programming languages. Nodejs is known for handling millions of concurrent requests with less memory and Javascript objects are key-value pairs which makes Nodejs a perfect choice to build light weight in-memory cache server.

Prerequisites

  • Node 8.10.x or higher

Install

npm install dinache

Quickstart

Step 1: Add app.ts (file: app.ts)
import { Dinache } from 'dinache';

// Checks for process.env.PORT and if not found, starts in-memory cache server on default 8080 port.
new Dinache().start();

// Checks for process.env.PORT and if not found, starts in-memory cache server on provided 4200 port.
new Dinache(4200).start();
Step 2: Open your Postman (make a POST request to http://localhost:8080/query")
  • GET key
// GET key
{
    query: {
        op: 'GET',
        key: 'key1'
    }
}
// result
{
    query: {
        value: 'YOU_WILL_GET_VALUE'
    }
}
  • PUT key
// PUT key
{
    query: {
        op: 'PUT',
        key: 'key1',
        value: 'value1'
    }
}
// result
{
    query: { }
}
// or you receive the following error when you try to put a key which already exists.
{
    query: {
        error: 'KEY_EXISTS'
    }
}
  • DELETE key
// DELETE key
{
    query: {
        op: 'DELETE',
        key: 'key1'
    }
}
// result is similar when you try to delete a key that exists or not.
{
    query: { }
}
  • UPSERT key
// UPSERT key
{
    query: {
        op: 'UPSERT',
        key: 'key1',
        value: 'value1'
    }
}
// result is similar when you try to upsert a key that exists or not.
{
    query: { }
}
  • UPDATE key
// UPDATE key
{
    query: {
        op: 'UPDATE',
        key: 'key1',
        value: 'value1'
    }
}
// result
{
    query: { }
}
// or you receive the following error when you try to update a key which dont exists.
{
    query: {
        error: 'KEY_NOT_EXISTS'
    }
}
  • Possible values for op are GET | PUT | UPDATE | UPSERT | DELETE.
  • Use UPSERT if you want to update or create.
  • Use PUT if you want to create when key not exists.
Batch queries (make a POST request to http://localhost:8080/query")

You can also execute batch queries instead of making subsequent calls to server and reduce round-trips.

// batch-queries
{
    batch: [{
        op: 'GET',
        key: 'key1'
    }, {
        op: 'PUT'
        key: 'key2',
        value: 'value2
    }, {
        op: 'PUT'
        key: 'key2',
        value: 'value2
    }]
}
// result
{
    batch: [{
        value: 'value1'
    }, {

    },{
        error: 'KEY_EXISTS'
    }]
}

License

MIT Licensed.

Keywords

FAQs

Last updated on 04 Mar 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc