You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
Luke Childs 471feae181 Document cache stores 8 years ago
src Set default cache ttl to 5 hours 8 years ago
test Drop standard in favour of xo 8 years ago
.gitignore Add .gitignore 8 years ago
.travis.yml Integrate with Travis and Coveralls 8 years ago
LICENSE Add LICENSE file 8 years ago
README.md Document cache stores 8 years ago
package.json Update description 8 years ago

README.md

onionoo-node-client

Node.js client library for the Tor Onionoo API

Build Status Coverage Status

Promise based client library for the Tor Onionoo API. Includes DB agnostic caching.

Install

npm install --save onionoo

Usage

const Onionoo = require('onionoo');
const onionoo = new Onionoo();

// Get top 10 relays
const query = {
  limit: 10,
  running: true,
  order: '-consensus_weight'
};

onionoo.summary(query).then(response => {
    console.log(response.body)
    // {
    //   version:'3.1',
    //   relays_published:'2016-12-23 09:00:00',
    //   relays:[
    //     [Object],
    //     [Object],
    //     [Object],
    //     [Object],
    //     [Object],
    //     [Object],
    //     [Object],
    //     [Object],
    //     [Object],
    //     [Object]
    //   ],
    //   bridges_published:'2016-12-23 07:41:03',
    //   bridges:[]
    // }
});

You can override the default options when instantiating a new Onionoo instance:

const Onionoo = require('onionoo');
const onionoo = new Onionoo({
  baseUrl: 'https://onionoo.torproject.org',
  endpoints: [
    'summary',
    'details',
    'bandwidth',
    'weights',
    'clients',
    'uptime'
  ],
  cache: {
    store: 'memory',
    max: 500
  }
});

Cache Stores

This module makes use of node-cache-manager to support multiple cache stores. By default we store cached responses in memory. You can easily disable the cache or use a more scalable cache store such as Redis by using node-cache-manager's store engine modules.

Disable cache:

const Onionoo = require('onionoo');
const onionoo = new Onionoo({
  cache: false
});

Use persistent Redis cache:

const Onionoo = require('onionoo');
const redisStore = require('cache-manager-redis');
const onionoo = new Onionoo({
  cache: {
    store: redisStore
  }
});

License

MIT © Luke Childs