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
Enterprise-grade ITSM, for every business Icon
Enterprise-grade ITSM, for every business

Give your IT, operations, and business teams the ability to deliver exceptional services—without the complexity.

Freshservice is an intuitive, AI-powered platform that helps IT, operations, and business teams deliver exceptional service without the usual complexity. Automate repetitive tasks, resolve issues faster, and provide seamless support across the organization. From managing incidents and assets to driving smarter decisions, Freshservice makes it easy to stay efficient and scale with confidence.
Try it 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