termchat 1.1.1

Distributed LAN chat application in the terminal
termchat-1.1.1 is not a library.
Visit the last successful build: termchat-1.3.1

A distributed LAN chat application in the terminal (without needing a server!). Run the application in your terminal and write into the LAN!

Built on top of tui-rs to create the terminal UI and message-io to make the network connections.

Installation

You can use the cargo package manager in order to install it.

$ cargo install termchat

If you have ~/.cargo/bin in your PATH (or similar in your OS), you will be able to use termchat everywhere in your computer!

Also, you can download the last release for your machine from the releases.

Arch Linux

termchat can be installed from available AUR packages using an AUR helper. For example,

$ yay -S termchat

If you prefer, you can clone the AUR packages and then compile them with makepkg. For example,

$ git clone https://aur.archlinux.org/termchat.git && cd termchat && makepkg -si

How it works?

To not saturate the network, termchat uses only one multicast message at startup to find other termchat applications on the network. Once a new application has been found by multicast, a TCP connection is created between them.

Usage

Simply write:

$ termchat

to open the application in your terminal.

By default, your computer user name is used. You can use a different username with -u <name>

You can modify the multicast discovery address with -d <address>

You can set a custom tcp sever port with -t <port>

(see the application help for more info --help).

Commands

Termchat treats messages containings the following commands in a special way:

  • ?send <$path_to_file>: sends the specified file to everyone on the network, example: ?send ./myfile

    Note: The received files can be found in /tmp/termchat/<termchat-username>/<file_name>

Frequently Asked Questions

Q: Hosts are not disoverable

A:

  • Make sure that no firewall is running (example: ufw), and if that's the case either stop it or add termchat ports to the white list.

  • By default you need to allow port 5877/udp and port X/tcp, X is a different with each run. Note that you can specify a custom tcp port as mentioned above and add it to the firewall whitelist.