Skip to content

humankernel/chat-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💬 Terminal Chat

screenshot

Terminal Chat is a minimal command-line chat application written in Go, built to explore core Go concepts like goroutines, channels, and WebSockets.

It’s a lightweight project for learning how concurrent communication and real-time networking work in Go.

✨ Features

  • ✅ Set a custom username
  • 💬 Create or join multiple chat rooms
  • 📁 Send files directly to another user
  • 🧠 Learn by exploring Go concurrency (goroutines & channels)

⌨️ Chat Commands

Command Description
/list List all available chat rooms
/join <ROOM> Join a chat room (creates it if it doesn’t exist)
/file:<filename>:<receiver> Send a file to a specific user

🚀 Getting Started

  1. Clone the repository

    git clone https://github.com/humankernel/chat
    cd chat
  2. Install dependencies

    go mod tidy
  3. Run the server and client

    go run server.go
    go run client.go
  4. Start chatting! You can open multiple terminal windows and connect different clients to simulate a real chat environment.

🧠 Learning Goals

This project is intended for Go learners who want to understand:

  • How goroutines handle concurrency
  • How channels synchronize communication
  • How to use WebSockets for real-time data exchange
  • How to build a simple client–server architecture in Go

About

Go Channels, Gorutines and WebSockets

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages