Skip to content

MarceAriel99/irc-chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IRC-CHAT

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

Screenshot

Screenshot

This application was developed for the subject 'Taller de programación 1' in colaboration with:

Languages and tools

Rust  Gtk3 

(This application was developed in Rust 1.64.0)

Start the server

cargo run --bin server <server_persistency_file>

server_persistency_file contains the information about the server (One of these is server_data.txt)

MAIN SERVER

The main server is unique and receives connections from secondary servers. The persistency file can contain the following lines:

Config information:

    S;server_name;address;main_server;users_file_path

Example:

    S;rust;127.0.0.1:3000;none;saved_files/users.txt

Server admin information:

    A;password;nickname

Example:

    A;password123;juanireil

SECONDARY SERVER

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:

Config information:

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

Server admin information:

Same as main server

Registered users persistency

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

Start Client

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.

Run tests

cargo test

Generate documentation

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

Showcase

Showcase.mp4

About

Multi-server IRC chat system implemented in Rust

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages