Skip to content

e-e-e/dat-protocol-buffers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

A convenience wrapper for encoding and decoding common dat protocol buffers defined in the dat white paper.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published