level-logs
Store multiple append only logs in leveldb.
Last updated 7 years ago by mafintosh .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ npm install level-logs 
SYNC missed versions from official npm registry.

level-logs

Store multiple append only logs in leveldb.

npm install level-logs

build status

Usage

var logs = require('level-logs')(db) // where db is a levelup

logs.append('mathias', 'hello', function (err) {
  logs.append('mathias', 'world', function (err) {
    logs.createReadStream('mathias')
      .on('data', function (data) {
        console.log(data)
      })
  })
})

Running the above outputs

{
  log: 'mathias',
  seq: 1,
  value: 'hello'
}
{
  log: 'mathias',
  seq: 2,
  value: 'world'
}

API

logs = levelLogs(db, [options])

Create a new logs instance. Options include

{
  valueEncoding: 'json', // set a levelup value encoding
  prefix: 'logs',        // prefix all keys with this prefix
  separator: '!'         // use this as log key separator
}

logs.append(log, value, cb)

Append a value to a log.

logs.put(log, seq, value, [cb])

Insert a value into a log at position seq. Normally you want seq to be the head of the log +1. This method is useful if you want to cache the head position of the log somehow.

logs.head('mathias', function (err, seq) {
  logs.put('mathias', seq + 1, 'hello', function (err) {
    ...
  })
})

logs.get(log, seq, cb)

Get a value from a log at position seq

logs.head(seq, cb)

The the head seq of a log. If the log doesn't exist the head will be 0

logs.head('some-log', function (err, seq) {
  console.log('head of some-log is', seq)
})

stream = logs.list()

Return a list of all logs names as a readable stream

var names = logs.list()

names.on('data', function (name) {
  console.log('there is a log called', name)
})

key = logs.key(log, seq)

Get the leveldb key the value stored in a log at position seq. This is useful if you want to batch multiple operations together.

License

MIT

Current Tags

  • 1.2.0                                ...           latest (7 years ago)

5 Versions

  • 1.2.0                                ...           7 years ago
  • 1.1.2                                ...           8 years ago
  • 1.1.1                                ...           8 years ago
  • 1.1.0                                ...           10 years ago
  • 1.0.0                                ...           10 years ago
Maintainers (1)
Downloads
Total 5
Today 0
This Week 0
This Month 1
Last Day 0
Last Week 1
Last Month 0
Dependencies (5)
Dev Dependencies (3)
Dependents (1)

© 2010 - cnpmjs.org x YWFE | Home | YWFE