{"id":23340209,"url":"https://github.com/sierrasoftworks/chat","last_synced_at":"2025-09-23T06:32:45.310Z","repository":{"id":57560765,"uuid":"135070978","full_name":"SierraSoftworks/chat","owner":"SierraSoftworks","description":"A simple chat protocol to practice writing network servers and clients","archived":false,"fork":false,"pushed_at":"2020-06-14T13:04:16.000Z","size":13,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-13T17:17:29.925Z","etag":null,"topics":["chat","exercise","golang","protocol"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SierraSoftworks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-05-27T18:21:30.000Z","updated_at":"2019-02-11T23:19:36.000Z","dependencies_parsed_at":"2022-08-25T16:11:34.119Z","dependency_job_id":null,"html_url":"https://github.com/SierraSoftworks/chat","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SierraSoftworks%2Fchat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SierraSoftworks%2Fchat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SierraSoftworks%2Fchat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SierraSoftworks%2Fchat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SierraSoftworks","download_url":"https://codeload.github.com/SierraSoftworks/chat/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247675608,"owners_count":20977376,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chat","exercise","golang","protocol"],"created_at":"2024-12-21T04:20:11.016Z","updated_at":"2025-09-23T06:32:40.257Z","avatar_url":"https://github.com/SierraSoftworks.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chat\n**A simple chat protocol to practice programming**\n\n![](https://user-images.githubusercontent.com/1760260/40576922-aee42886-60f5-11e8-8f53-2d3111217d71.gif)\n\nChat (en. \"cat\") is a simple chat protocol meant to be implemented as a means to learn network programming\nand intended to be cross-platform compatible, easy to parse and simple to test.\n\n## Protocol\nChat'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\nperson to visually debug issues or test using tools like `nc` or `telnet`.\n\nCommands are stateless, which helps keep the client and server as simple as\npossible while also easing debugging. There is also (currently) a single global\nchat room to which all clients are connected, again, simplifying the server\nimplementation.\n\n```\n.msg sender \"This is my message\"\n```\n\nFor a more comprehensive description of the protocol's grammar and available commands,\nplease look at the [PROTOCOL.md](PROTOCOL.md) file.\n\n## Reference Implementation\nThere is a reference implementation of the client, server and protocol parser written\nin Go. Most of these components are somewhat over-engineered with the objective of\nmaking them easily testable and extensible for future expansions to the protocol and\nfeature-set of *Chat*. It is highly likely that these implementations could be\nshortened down to a few dozen lines of code.\n\nYou can download pre-compiled versions of the *Chat* binaries on the\n[releases](https://github.com/SierraSoftworks/chat/releases) page if you wish to\nuse them for testing your own clients or servers.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsierrasoftworks%2Fchat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsierrasoftworks%2Fchat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsierrasoftworks%2Fchat/lists"}