This is a Rust implementation of a multi-server IRC chat system. Some of the most important features supported are:
- Connection and registration
- Private messages
- Channels
- Channel operators / topics / private channels ...
- File transfer between users
(This application was developed in Rust 1.64.0)
cargo run --bin server <server_persistency_file>
server_persistency_file contains the information about the server (One of these is server_data.txt)
The main server is unique and receives connections from secondary servers. The persistency file can contain the following lines:
S;server_name;address;main_server;users_file_path
Example:
S;rust;127.0.0.1:3000;none;saved_files/users.txt
A;password;nickname
Example:
A;password123;juanireil
The secondary server is the one that connects to the primary server.
You must provide the ip, port and the correct name of the main server so it can start working correctly. In the repository there are different secondary server files (eg server_data_sec_1, server_data_sec_2). The persistency file can contain the following lines:
S;server_name;server_addres;main_server_name;main_server_addres
Example:
S;secondary_server_1;127.0.0.1:3001;main_server;127.0.0.1:3000
Same as main server
users.txt contains the information of all registered users. The file can contain the following lines:
U;nickname;adress;username;real_name;server_name;password
Example:
U;juanireil;127.0.0.1;juani;Juan Reil;rust;password123
cargo run --bin client
A first window will appear, in which the name of the server, the IP, and the port are requested. If these fields are correct, it will connect and proceed to log in or register.
cargo test
The code is documented according to the Rust standards present in its manual. In order to generate and view the documentation, you must use the command:
cargo doc --open