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
Next-Gen Encryption for Post-Quantum Security | CLEAR by Quantum Knight Icon
Next-Gen Encryption for Post-Quantum Security | CLEAR by Quantum Knight

Lock Down Any Resource, Anywhere, Anytime

CLEAR by Quantum Knight is a FIPS-140-3 validated encryption SDK engineered for enterprises requiring top-tier security. Offering robust post-quantum cryptography, CLEAR secures files, streaming media, databases, and networks with ease across over 30 modern platforms. Its compact design, smaller than a single smartphone image, ensures maximum efficiency and low energy consumption.
Learn More
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