Skip to content

Latest commit

 

History

History
 
 

pubsub

@libp2p/pubsub

libp2p.io Discuss codecov CI

libp2p pubsub base class

About

A set of components to be extended in order to create a pubsub implementation.

Example

import { PubSubBaseProtocol } from '@libp2p/pubsub'
import type { PubSubRPC, PublishResult, PubSubRPCMessage, PeerId, Message } from '@libp2p/interface'
import type { Uint8ArrayList } from 'uint8arraylist'

class MyPubsubImplementation extends PubSubBaseProtocol {
  decodeRpc (bytes: Uint8Array | Uint8ArrayList): PubSubRPC {
    throw new Error('Not implemented')
  }

  encodeRpc (rpc: PubSubRPC): Uint8Array {
    throw new Error('Not implemented')
  }

  encodeMessage (rpc: PubSubRPCMessage): Uint8Array {
    throw new Error('Not implemented')
  }

  async publishMessage (sender: PeerId, message: Message): Promise<PublishResult> {
    throw new Error('Not implemented')
  }
}

Install

$ npm i @libp2p/pubsub

Browser <script> tag

Loading this module through a script tag will make it's exports available as Libp2pPubsub in the global namespace.

<script src="https://unpkg.com/@libp2p/pubsub/dist/index.min.js"></script>

API Docs

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.