The PubSub implementation for go-libp2p https://github.com/libp2p/specs/tree/master/pubsub
Go to file
Yusef Napora ec67a03cbf chore: update badges for consistency across libp2p org 2019-02-20 16:09:28 -05:00
.gx gx publish 0.11.13 2019-02-18 19:59:14 +01:00
ci Create Jenkinsfile 2017-11-27 13:15:23 +01:00
pb gx publish 0.11.12 2019-02-18 16:32:05 +01:00
.gitignore gx publish v0.5.0 2016-09-14 15:27:34 -07:00
.travis.yml ci: bump go to 1.11 2018-10-25 06:46:04 -07:00
LICENSE use timecache 2016-09-10 20:47:12 -07:00
Makefile use timecache 2016-09-10 20:47:12 -07:00
README.md chore: update badges for consistency across libp2p org 2019-02-20 16:09:28 -05:00
blacklist.go lru blackclist 2019-01-17 14:20:34 +02:00
blacklist_test.go test blacklist implementations 2019-01-17 14:26:06 +02:00
codecov.yml Update Travis CI to use standard test script and go 1.9.x. 2017-11-17 22:36:56 -05:00
comm.go discriminate stream errors from unsupported protocols 2018-12-14 00:33:30 +02:00
doc.go godoc is not html either 2019-01-11 12:17:48 +02:00
floodsub.go godoc cosmetics 2019-01-04 13:14:04 +02:00
floodsub_test.go extend validator interface to include message source 2019-01-17 14:44:34 +02:00
gossipsub.go godoc cosmetics 2019-01-04 13:14:04 +02:00
gossipsub_test.go move to go-libp2p-pubsub 2018-10-18 21:10:16 +01:00
mcache.go move to go-libp2p-pubsub 2018-10-18 21:10:16 +01:00
mcache_test.go move to go-libp2p-pubsub 2018-10-18 21:10:16 +01:00
notify.go simplify peer disconnect detection logic to ensure a single outgoing stream 2018-12-13 22:52:59 +02:00
package.json gx publish 0.11.13 2019-02-18 19:59:14 +01:00
pubsub.go add early timecache check for already validated messages 2019-01-22 00:47:12 +02:00
randomsub.go godoc cosmetics 2019-01-04 13:14:04 +02:00
sign.go move to go-libp2p-pubsub 2018-10-18 21:10:16 +01:00
sign_test.go move to go-libp2p-pubsub 2018-10-18 21:10:16 +01:00
subscription.go move to go-libp2p-pubsub 2018-10-18 21:10:16 +01:00

README.md

go-libp2p-pubsub

A pubsub system with flooding and gossiping variants.

This is the canonical pubsub implementation for libp2p.

We currently provide three implementations:

  • floodsub, which is the baseline flooding protocol.
  • gossipsub, which is a more advanced router with mesh formation and gossip propagation. See spec and implementation for more details.
  • randomsub, which is a simple probabilistic router that propagates to random subsets of peers.

Table of Contents

Install

go get github.com/libp2p/go-libp2p-pubsub

Usage

To be used for messaging in p2p instrastructure (as part of libp2p) such as IPFS, Ethereum, other blockchains, etc.

Implementations

See libp2p/specs/pubsub#Implementations.

Documentation

See the libp2p specs for high level documentation and godoc for API documentation.

Contribute

Contributions welcome. Please check out the issues.

Check out our contributing document for more information on how we work, and about contributing in general. Please be aware that all interactions related to multiformats are subject to the IPFS Code of Conduct.

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

License

MIT © Jeromy Johnson