0.6.3 • Published 6 years ago

dns-cached v0.6.3

Weekly downloads
54
License
MIT
Repository
github
Last release
6 years ago

dns-cached

Caching DNS Responses using Memoization technique.

Build Status Coverage Status

Installation

npm install dns-cached

Example

const dnsCached = require('dns-cached');
const dns = require('dns');
const util = require('util');

const cache = dnsCached(5, { maxSize: 500 });
cache.overrideMethods('resolve'); /* Override/Memoize DNS Resolve */
const dnsResolve = util.promisify(dns.resolve);

async function run() {
  console.log('resolve("google.com")');
  for (let i = 0; i < 3; i++) {
    console.time('resolve');
    console.log('IP: ', await dnsResolve('google.com'));
    console.timeEnd('resolve');
  }
}
run().catch(console.error);
cache.flush(); /* Clear all timers */
% node index.js
resolve("google.com")
IP:  [ '172.217.161.14' ]
resolve: 47.908ms
IP:  [ '172.217.161.14' ]
resolve: 1.664ms
IP:  [ '172.217.161.14' ]
resolve: 0.173ms

Usage

const dnsCached = require('dns-cached');
/**
 * dnsCached(ttl, { maxSize })
 * ttl --> Time to live in minutes. Default: 1
 * maxSize --> Maximum number of items to store in cache. Default: 1000
 */
const cache = dnsCached(5, { maxSize: 500 });

/* Override/Memoize all dns methods */
cache.overrideMethods();

/* Override/Memoize a single dns method */
cache.overrideMethods('lookup');

/* Override/Memoize a list of dns methods */
cache.overrideMethods(['lookup', 'resolve']);

/* Flushing cache (if needed) */
cache.flush();

Docs

Click here to view project documentation.

Running tests

npm test or npm run test

Versioning

SemVer is used for versioning. For the versions available, see the tags on this repository.

License

This project is licensed under the MIT License - see the LICENSE file for details.

0.6.3

6 years ago

0.6.2

6 years ago

0.6.1

6 years ago

0.6.0

6 years ago

0.5.1

6 years ago

0.5.0

6 years ago

0.4.4

6 years ago

0.4.3

6 years ago

0.2.3

6 years ago

0.2.0

6 years ago

0.1.0

6 years ago

0.0.0

6 years ago