A terminal-based P2P chat application using libp2p and Golang that uses a Kademlia DHT and the IPFS network for peer discovery and routing. The application was inspired by chat examples found on libp2p's pubsub library, but is more evolved and fully featured version of it. It uses a Kademlia DHT from libp2p for peer discovery and routing and supports a more fully featured host. The other components of the libp2p such as TLS encryption, peer active discovery, YAMUX stream multiplexing are integrated as well. The application also allows users to jump between different chat rooms without having to restart the application and they can also change their usernames at any point. The application works for two nodes on the same network or on different networks. Nodes that are behind NATs on private network are able to communicate with each other because the application attempts to configure the router automatically using UPnP and also uses AutoRelay (TURN) to facilitate the connection.

Features

  • When the PeerChat application is invoked without any flags, it joins the lobby chat room as a user named newuser
  • peerchat -user manish -room mychatroom The method of peer discovery method can be modified using the -discover flag
  • The PeerChat applcation can be installed in one of two ways
  • tview is terminal UI library written in Golang with a collection of rich, interactive widgets
  • PeerChat's UI layer is built using tview and tcell
  • libp2p is a modular network stack library born out of The IPFS Project

Project Samples

Project Activity

See All Activity >

Categories

File Sharing

License

MIT License

Follow peerchat

peerchat Web Site

Other Useful Business Software
MongoDB Atlas runs apps anywhere Icon
MongoDB Atlas runs apps anywhere

Deploy in 115+ regions with the modern database for every enterprise.

MongoDB Atlas gives you the freedom to build and run modern applications anywhere—across AWS, Azure, and Google Cloud. With global availability in over 115 regions, Atlas lets you deploy close to your users, meet compliance needs, and scale with confidence across any geography.
Start Free
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of peerchat!

Additional Project Details

Operating Systems

Linux, Mac, Windows

Programming Language

Go

Related Categories

Go File Sharing Software

Registered

2023-07-18