1.0.4 • Published 7 years ago

dat-protocol-buffers v1.0.4

Weekly downloads
6
License
ISC
Repository
github
Last release
7 years ago

dat protocol buffers

Build Status JavaScript Style Guide

This is a convenience implementation of the protocol buffers for the dat protocol as defined in the dat white paper.

Although this package can be used to decode or encode any dat protocol buffers. It is particularly useful for decoding download events from dat-node or hyperdrive.

install

npm install dat-protocol-buffers

How to use

You can import all the message specification simple my importing the base module

var messages = require('dat-protocol-buffers')

or individually

var messages = require('dat-protocol-buffers/messages/{name-of-protocol}')
// e.g. var messages = require('dat-protocol-buffers/messages/node')
// e.g. var messages = require('dat-protocol-buffers/messages/handshake')

Listening to dat download events:

Dat(dir, { key: somekey, sparse: true }, function (err, dat) {
  const stats = dat.trackStats();
  dat.joinNetwork();
  dat.network.once('connection', function () {
    console.log('I connected to someone!')
    dat.archive.metadata.on('download', (i, d) => {
      if(i === 0) {
        const header = messages.Header.decode(d);
        console.log('HEADER', header);
      } else {
          const block = messages.Node.decode(d);
          console.log('BLOCK', block);
      }
    })
  })
})

Protocols currently supported:

  • Cancel
  • Data
  • Handshake
  • Have
  • Header
  • Register
  • Request
  • Node
  • Stat
  • Status
  • Want
  • Unhave
  • Unwant