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
Custom VMs From 1 to 96 vCPUs With 99.95% Uptime Icon
Custom VMs From 1 to 96 vCPUs With 99.95% Uptime

General-purpose, compute-optimized, or GPU/TPU-accelerated. Built to your exact specs.

Live migration and automatic failover keep workloads online through maintenance. One free e2-micro VM every month.
Try 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