-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
examples: add basic pubsub-with-rendezvous example (#1738)
* Added basic pubsub with rendezvous example * Formatting * Appease go vet and dep checker * tidy go mod
- Loading branch information
1 parent
18bc747
commit 7828f3e
Showing
5 changed files
with
1,681 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
chat |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# go-libp2p-pubsub chat with rendezvous example | ||
|
||
This example project allows multiple peers to chat among each other using go-libp2p-pubsub. | ||
|
||
Peers are discovered using a DHT, so no prior information (other than the rendezvous name) is required for each peer. | ||
|
||
## Running | ||
|
||
Clone this repo, then `cd` into the `examples/pubsub/basic-chat-with-rendezvous` directory: | ||
|
||
```shell | ||
git clone https://github.com/libp2p/go-libp2p | ||
cd go-libp2p/examples/pubsub/basic-chat-with-rendezvous | ||
``` | ||
|
||
Now you can either run with `go run`, or build and run the binary: | ||
|
||
```shell | ||
go run . | ||
|
||
# or, build and run separately | ||
go build . | ||
./chat | ||
``` | ||
|
||
To change the topic name, use the `-topic` flag: | ||
|
||
```shell | ||
go run . -topic=adifferenttopic | ||
``` | ||
|
||
Try opening several terminals, each running the app. When you type a message and hit enter in one, it | ||
should appear in all others that are connected to the same topic. | ||
|
||
To quit, hit `Ctrl-C`. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,118 @@ | ||
module github.com/libp2p/go-libp2p/examples/pubsub/chat | ||
|
||
go 1.18 | ||
|
||
require ( | ||
github.com/libp2p/go-libp2p v0.22.0 | ||
github.com/libp2p/go-libp2p-kad-dht v0.18.0 | ||
github.com/libp2p/go-libp2p-pubsub v0.7.1 | ||
) | ||
|
||
require ( | ||
github.com/benbjohnson/clock v1.3.0 // indirect | ||
github.com/beorn7/perks v1.0.1 // indirect | ||
github.com/cespare/xxhash/v2 v2.1.2 // indirect | ||
github.com/cheekybits/genny v1.0.0 // indirect | ||
github.com/containerd/cgroups v1.0.4 // indirect | ||
github.com/coreos/go-systemd/v22 v22.3.2 // indirect | ||
github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect | ||
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect | ||
github.com/docker/go-units v0.4.0 // indirect | ||
github.com/elastic/gosigar v0.14.2 // indirect | ||
github.com/flynn/noise v1.0.0 // indirect | ||
github.com/francoispqt/gojay v1.2.13 // indirect | ||
github.com/fsnotify/fsnotify v1.5.4 // indirect | ||
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect | ||
github.com/godbus/dbus/v5 v5.1.0 // indirect | ||
github.com/gogo/protobuf v1.3.2 // indirect | ||
github.com/golang/protobuf v1.5.2 // indirect | ||
github.com/google/gopacket v1.1.19 // indirect | ||
github.com/google/uuid v1.3.0 // indirect | ||
github.com/gorilla/websocket v1.5.0 // indirect | ||
github.com/hashicorp/errwrap v1.0.0 // indirect | ||
github.com/hashicorp/go-multierror v1.1.1 // indirect | ||
github.com/hashicorp/golang-lru v0.5.4 // indirect | ||
github.com/huin/goupnp v1.0.3 // indirect | ||
github.com/ipfs/go-cid v0.2.0 // indirect | ||
github.com/ipfs/go-datastore v0.5.1 // indirect | ||
github.com/ipfs/go-ipfs-util v0.0.2 // indirect | ||
github.com/ipfs/go-ipns v0.2.0 // indirect | ||
github.com/ipfs/go-log v1.0.5 // indirect | ||
github.com/ipfs/go-log/v2 v2.5.1 // indirect | ||
github.com/ipld/go-ipld-prime v0.9.0 // indirect | ||
github.com/jackpal/go-nat-pmp v1.0.2 // indirect | ||
github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect | ||
github.com/jbenet/goprocess v0.1.4 // indirect | ||
github.com/klauspost/compress v1.15.4 // indirect | ||
github.com/klauspost/cpuid/v2 v2.1.0 // indirect | ||
github.com/koron/go-ssdp v0.0.3 // indirect | ||
github.com/libp2p/go-buffer-pool v0.1.0 // indirect | ||
github.com/libp2p/go-cidranger v1.1.0 // indirect | ||
github.com/libp2p/go-flow-metrics v0.1.0 // indirect | ||
github.com/libp2p/go-libp2p-asn-util v0.2.0 // indirect | ||
github.com/libp2p/go-libp2p-blankhost v0.4.0 // indirect | ||
github.com/libp2p/go-libp2p-core v0.20.0 // indirect | ||
github.com/libp2p/go-libp2p-discovery v0.7.0 // indirect | ||
github.com/libp2p/go-libp2p-kbucket v0.4.7 // indirect | ||
github.com/libp2p/go-libp2p-record v0.2.0 // indirect | ||
github.com/libp2p/go-libp2p-swarm v0.11.0 // indirect | ||
github.com/libp2p/go-msgio v0.2.0 // indirect | ||
github.com/libp2p/go-nat v0.1.0 // indirect | ||
github.com/libp2p/go-netroute v0.2.0 // indirect | ||
github.com/libp2p/go-openssl v0.1.0 // indirect | ||
github.com/libp2p/go-reuseport v0.2.0 // indirect | ||
github.com/libp2p/go-yamux/v3 v3.1.2 // indirect | ||
github.com/lucas-clemente/quic-go v0.28.1 // indirect | ||
github.com/marten-seemann/qtls-go1-16 v0.1.5 // indirect | ||
github.com/marten-seemann/qtls-go1-17 v0.1.2 // indirect | ||
github.com/marten-seemann/qtls-go1-18 v0.1.2 // indirect | ||
github.com/marten-seemann/qtls-go1-19 v0.1.0 // indirect | ||
github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect | ||
github.com/mattn/go-isatty v0.0.16 // indirect | ||
github.com/mattn/go-pointer v0.0.1 // indirect | ||
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect | ||
github.com/miekg/dns v1.1.50 // indirect | ||
github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b // indirect | ||
github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc // indirect | ||
github.com/minio/sha256-simd v1.0.0 // indirect | ||
github.com/mr-tron/base58 v1.2.0 // indirect | ||
github.com/multiformats/go-base32 v0.0.4 // indirect | ||
github.com/multiformats/go-base36 v0.1.0 // indirect | ||
github.com/multiformats/go-multiaddr v0.6.0 // indirect | ||
github.com/multiformats/go-multiaddr-dns v0.3.1 // indirect | ||
github.com/multiformats/go-multiaddr-fmt v0.1.0 // indirect | ||
github.com/multiformats/go-multibase v0.1.1 // indirect | ||
github.com/multiformats/go-multicodec v0.5.0 // indirect | ||
github.com/multiformats/go-multihash v0.2.1 // indirect | ||
github.com/multiformats/go-multistream v0.3.3 // indirect | ||
github.com/multiformats/go-varint v0.0.6 // indirect | ||
github.com/nxadm/tail v1.4.8 // indirect | ||
github.com/onsi/ginkgo v1.16.5 // indirect | ||
github.com/opencontainers/runtime-spec v1.0.2 // indirect | ||
github.com/opentracing/opentracing-go v1.2.0 // indirect | ||
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect | ||
github.com/pkg/errors v0.9.1 // indirect | ||
github.com/polydawn/refmt v0.0.0-20190807091052-3d65705ee9f1 // indirect | ||
github.com/prometheus/client_golang v1.12.2 // indirect | ||
github.com/prometheus/client_model v0.2.0 // indirect | ||
github.com/prometheus/common v0.37.0 // indirect | ||
github.com/prometheus/procfs v0.8.0 // indirect | ||
github.com/raulk/go-watchdog v1.3.0 // indirect | ||
github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 // indirect | ||
github.com/spaolacci/murmur3 v1.1.0 // indirect | ||
github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1 // indirect | ||
github.com/whyrusleeping/timecache v0.0.0-20160911033111-cfcb2f1abfee // indirect | ||
go.opencensus.io v0.23.0 // indirect | ||
go.uber.org/atomic v1.10.0 // indirect | ||
go.uber.org/multierr v1.8.0 // indirect | ||
go.uber.org/zap v1.22.0 // indirect | ||
golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e // indirect | ||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect | ||
golang.org/x/net v0.0.0-20220812174116-3211cb980234 // indirect | ||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect | ||
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab // indirect | ||
golang.org/x/tools v0.1.12 // indirect | ||
google.golang.org/protobuf v1.28.1 // indirect | ||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect | ||
lukechampine.com/blake3 v1.1.7 // indirect | ||
) |
Oops, something went wrong.