Giter Site home page Giter Site logo

runtime-caching's Introduction

runtime-caching Build Status

demo: https://msn0.github.io/runtime-caching

Runtime-caching is used for caching function responses. It is useful when dealing with heavy, time-consuming algorithms. In the following example factorial is computed only once and cached in memory for the next 30 seconds:

const { cache } = require('runtime-caching');

const factorial = (n) => {
    // compute and return n!
};

const factorialCached = cache({ timeout: 30000 })(factorial);

factorialCached(55); // 121645100408832000

installation

$ npm i runtime-caching

examples

cache promise responses

import { cache } from 'runtime-caching';

function foo (name) {
   return fetch(`/foo?name=${name}`);
}

module.exports = cache({ timeout: 30000 })(foo);

cache computationally and memory expensive algorithms

import { cache } from 'runtime-caching';

function compute(params) {
    // some heavy computations
    return result;
}

// computeCached will cache results for 30 seconds.
// Results obtained from different input params are cached separately.
const computeCached = cache({ timeout: 30000 })(compute);

// Nothing is cached at the moment.
// Execute compute('foo') and cache the result
computeCached('foo');

// compute was already called with 'foo'. Just return cached value.
computeCached('foo');

// compute was already called but with different params.
// Execute compute('bar') and cache value under different key.
computeCached('bar');

cache class methods

runtime-caching may be used as javascript-decorator

import { cache } from 'runtime-caching';

class Foo {

  // cache response for 1000 milliseconds
  @cache({ timeout: 1000 })
  request() {
    return 'the value to be cached';
  }
}

License

MIT © Michał Jezierski

runtime-caching's People

Contributors

msn0 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

runtime-caching's Issues

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.