dirkmc / js-libp2p-floodsub

Also known as pubsub-flood or just dumbsub, this implementation of pubsub focused on delivering an API for Publish/Subscribe, but with no CastTree Forming (it just floods the network).

Home Page:https://libp2p.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

js-libp2p-floodsub

Coverage Status Travis CI Circle CI Dependency Status js-standard-style standard-readme compliant

libp2p-floodsub, also known as pubsub-flood or just dumbsub, this implementation of pubsub focused on delivering an API for Publish/Subscribe, but with no CastTree Forming (it just floods the network).

Lead Maintainer

Vasco Santos.

Table of Contents

Install

> npm install libp2p-floodsub

Examples

const FloodSub = require('libp2p-floodsub')

const fsub = new FloodSub(node)

fsub.start((err) => {
  if (err) {
    console.log('Upsy', err)
  }
  fsub.on('fruit', (data) => {
    console.log(data)
  })
  fsub.subscribe('fruit')

  fsub.publish('fruit', new Buffer('banana'))
})

Events

Floodsub emits two kinds of events:

  1. <topic> when a message is received for a particular topic
  fsub.on('fruit', (data) => { ... })
  • data: a Buffer containing the data that was published to the topic
  1. floodsub:subscription-change when the local peer receives an update to the subscriptions of a remote peer.
  fsub.on('floodsub:subscription-change', (peerInfo, topics, changes) => { ... })
  • peerInfo: a PeerInfo object
  • topics: the topics that the peer is now subscribed to
  • changes: an array of { topicCID: <topic>, subscribe: <boolean> } eg [ { topicCID: 'fruit', subscribe: true }, { topicCID: 'vegetables': false } ]

API

See https://libp2p.github.io/js-libp2p-floodsub

Contribute

PRs are welcome!

Small note: If editing the Readme, please conform to the standard-readme specification.

License

MIT © David Dias

About

Also known as pubsub-flood or just dumbsub, this implementation of pubsub focused on delivering an API for Publish/Subscribe, but with no CastTree Forming (it just floods the network).

https://libp2p.io

License:MIT License


Languages

Language:JavaScript 99.6%Language:Groovy 0.4%