Skip to content

Pubsub base protocol for libp2p pubsub routers

License

Notifications You must be signed in to change notification settings

ChainSafe/js-libp2p-pubsub

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

js-libp2p-pubsub

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

libp2p-pubsub consits on the base protocol for libp2p pubsub implementation. This module is responsible for all the logic regarding peer connections.

Lead Maintainer

Vasco Santos.

Table of Contents

Install

> npm install libp2p-pubsub

Usage

A pubsub implementation MUST override the _processConnection, publish, subscribe and unsubscribe functions. add_peer and remove_peer may be overwritten if the pubsub implementation needs to add custom logic when peers are added and remove. All the remaining functions MUST NOT be overwritten.

The following example aims to show how to create your pubsub implementation extending this base protocol. The pubsub implementation will handle the subscriptions logic.

const Pubsub = require('libp2p-pubsub')

class PubsubImplementation extends Pubsub {
  constructor(libp2p) {
    super('libp2p:pubsub', '/pubsub-implementation/1.0.0', libp2p)
  }

  _processConnection(idB58Str, conn, peer) {
    // Required to be implemented by the subclass
    // Process each message accordingly
  }

  publish() {
    // Required to be implemented by the subclass
  }

  subscribe() {
    // Required to be implemented by the subclass
  }

  unsubscribe() {
    // Required to be implemented by the subclass
  }
}

Implementations using this base protocol

You can use the following implementations as examples for building your own pubsub implementation.

Contribute

Feel free to join in. All welcome. Open an issue!

This repository falls under the IPFS Code of Conduct.

License

Copyright (c) Protocol Labs, Inc. under the MIT License. See LICENSE file for details.

About

Pubsub base protocol for libp2p pubsub routers

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 99.2%
  • Groovy 0.8%