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
Our Free Plans just got better! | Auth0 Icon
Our Free Plans just got better! | Auth0

With up to 25k MAUs and unlimited Okta connections, our Free Plan lets you focus on what you do best—building great apps.

You asked, we delivered! Auth0 is excited to expand our Free and Paid plans to include more options so you can focus on building, deploying, and scaling applications without having to worry about your security. Auth0 now, thank yourself later.
Try free now
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