chat

command module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 27, 2018 License: MIT Imports: 4 Imported by: 0

README

Chat

A simple chat protocol to practice programming

Chat (en. "cat") is a simple chat protocol meant to be implemented as a means to learn network programming and intended to be cross-platform compatible, easy to parse and simple to test.

Protocol

Chat's protocol is composed of a command type, followed by zero or more string arguments. These commands are represented in text format, making it easy for a person to visually debug issues or test using tools like nc or telnet.

Commands are stateless, which helps keep the client and server as simple as possible while also easing debugging. There is also (currently) a single global chat room to which all clients are connected, again, simplifying the server implementation.

.msg sender "This is my message"

For a more comprehensive description of the protocol's grammar and available commands, please look at the PROTOCOL.md file.

Reference Implementation

There is a reference implementation of the client, server and protocol parser written in Go. Most of these components are somewhat over-engineered with the objective of making them easily testable and extensible for future expansions to the protocol and feature-set of Chat. It is highly likely that these implementations could be shortened down to a few dozen lines of code.

You can download pre-compiled versions of the Chat binaries on the releases page if you wish to use them for testing your own clients or servers.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL