Universal Connectivity
Realtime highly decentralised chat app.
Showcasing libp2p's superpowers in establishing ubiquitous peer-to-peer connectivity in modern programming languages (Go, Rust, TypeScript) and runtimes (Web, native binary).
On top of this strong foundation, it layers a GossipSub: A Secure PubSub Protocol for Unstructured Decentralised P2P Overlays. By analogy, an event broker with distributed brokering, or a distributed PubSub protocol.
This is the gossip event protocol that powers Filecoin and Post-Merge Ethereum.
Some of the cool and cutting-edge transport protocols used by this app are:
- WebTransport
- WebRTC
- QUIC
- TCP
Packages
| Packge | Description | WebTransport | WebRTC | QUIC | TCP |
|---|---|---|---|---|---|
frontend |
Next.js based browser UI of the chat app | ✅ | ✅ | ❌ | ❌ |
go-peer |
Chat peer implemented in Go | ✅ | ❌ | ✅ | ✅ |
rust-peer |
Chat peer implemented in Rust | ❌ | ✅ | ✅ | ❌ |
node |
Chat peer implemented with TypeScript in node.js | ❌ | ❌ | ❌ | ✅ |
✅ - Protocol supported ❌ - Protocol not supported
- Uses the GossipSub PubSub protocol for decentralised messaging
Connecting to a peer
Getting started – frontend and node
The project uses npm workspaces.
1. Install dependencies
Run npm install from the root of the repo:
npm i
2. Start dev server
Enter the frontend folder, start the dev server
cd packages/frontend
npm run dev