PeerChat: A terminal-based P2P chat application using libp2p and Golang

PeerChat: A terminal-based P2P chat application using libp2p and Golang

PeerChat is a terminal-based P2P chat application using libp2p and Golang. It utilizes a Kademlia DHT and the IPFS network for peer discovery and routing. The application supports features such as TLS encryption, peer active discovery, YAMUX stream multiplexing, and allows users to switch between chat rooms and change usernames.

It enables communication between nodes on the same or different networks, including private nodes behind NATs, by automatically configuring the router using UPnP and utilizing AutoRelay (TURN) for connecting to relay nodes.

The app is written in Golang, and it uses libp2p, and tview terminal UI library.

Future Development

  • Support for QUIC and WebSocket transports
  • Migrate to Protocol Buffers instead of JSON for message encoding
  • Chat Room notification for when user changes names
  • Support for other PubSub routers (RandomSub, FloodSub and someday EpiSub)
  • Support for password protected Chat Rooms.


MIT License

Resources & Download

Page 2 | p2p free download - SourceForge
Page 2 results. p2p free download. View, compare, and download p2p at SourceForge
- Advertisement -
Hazem Abbas

Written by Hazem Abbas

Medical Doctor by trade, but also a software developer. Linux Avid user. I write primary; open-source medical apps, dev tools and libraries I use, and off-topic like horse riding.
You've successfully subscribed to Open-source for Healthcare, and Education
Great! Next, complete checkout to get full access to all premium content.
Welcome back! You've successfully signed in.
Unable to sign you in. Please try again.
Success! Your account is fully activated, you now have access to all content.
Error! Stripe checkout failed.
Success! Your billing info is updated.
Billing info update failed.
Dark Light