Skip to content

timtimjnvr/chat

Repository files navigation

chat

example workflow example workflow

Decentralized P2P in terminal chat built in golang.

Commands

/chat <room> :                    create a new room named room and enter it.
/join <addr> <port> <chat_room> : join the room named room (<addr> and <port> identifies a user already in the room).
/msg <content> :                  send "content" in the current room.
/close :                          exit the current room.
/list :                           display user(s) in the room.
/list_chats :                     display enterred rooms.
/list_users :                     display all connected users.
/switch <chat_room>:              change the current room to <chat_room> (need to be joined).
/quit :                           kills the program

Doc

  • Architecture alt text
  • data exchanges : CRDTs choices
  • protocol to join & leave : alt text