Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

append-only-log

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

append-only-log

append only log interface

  • 0.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

append-only-log

Abstract interface for an append-only log.

Like abstract-blob-store, but for append-only logs.

STATUS

Mad science work-in-progress! :dragon_face:

Usage

To use the test suite from this module, use require('append-only-log/tests').

You'll have to implement a setup and teardown function:

var common = {
  setup: function(t, cb) {
    // setup takes a tap/tape compatible test instance in and a callback
    // this method should construct a new blob store instance and pass it to the callback:
    var log = createMyLog()
    cb(null, log)
  },
  teardown: function(t, log, blob, cb) {
    // teardown takes in the test instance, as well as the log instance
    // you can use the log to clean up its data, e.g.
    if (log) {
      var stream = log.createReadStream()
      stream.on('data', function (entry) {
        entry.cleanup()
      })
      stream.on('end', cb)
    } else cb()
    // be sure to call cb() when you are done with teardown
  }
}

To run the tests simply pass your test module (tap or tape or any other compatible modules are supported) and your common methods in:

var appendOnlyLogTests = require('append-only-log/tests')
appendOnlyLogTests(test, common)

API

A valid append-only log should implement the following APIs. There is a reference in-memory implementation available at index.js in this repo.

log.append(value, cb)

Appends value to the end of the log. If a function cb is given, it will be called asynchronously as function (err, seq). seq is the sequence number of the appended entry.

log.get(seq, cb)

Gets the value with sequence number seq from the log asynchronously. cb has the signature function (err, value).

log.createReadStream(opts)

Returns a Readable stream of values in the append-only log, starting from the most recently appended. Some implementations may accept opts.reverse for reversed entries, but this is not guaranteed.

Install

With npm installed, run

$ npm install append-only-log

Acknowledgments

append-only-log was inspired by abstract-blob-store.

See Also

License

ISC

Keywords

FAQs

Package last updated on 18 Jun 2016

Did you know?

Socket

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc