Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

README.md

Outline

FerrumLink 📨

Rust TCP Chat System 🦀💬

Server 🖧

A simple, asynchronous TCP-based chat server built using Rust, Tokio, and SQLite for user account management.

Terminal Client 🖳

A simple TCP stream forwarder for the cli. To communicate with the server

Web Client 🖥️

A web based client in yew.rs


Features ✨

  • User registration and login 🔐
  • Broadcasting messages to all connected users 📡
  • List of all users with their online/offline status 👥
  • Colorful terminal output with Colored and PrettyTable crates 🌈
  • Asynchronous I/O with Tokio ⚡️

Getting Started 🚀

Starting the server ⏫

To start the server download FerrumServe from the release page

$ ~/ferrum-serve 127.0.0.1:6142

Connecting with the server 🎮

To connect to the chat server, you can download FerrumLinker from the release page

$ ~/ferrum-linker 127.0.0.1:6142

After connecting, you will be prompted to either register a new user or log in with an existing user account. Once logged in, you can start sending messages to all connected users. Commands

/listusers: List all registered users with their online/offline status 👥.
/whisper: Private Messenging to a specified user. Usage: /whisper [username] [message]


Building 📦

Prerequisites

  • Rust (stable) and Cargo 🦀
  • SQLite 🗄️

Clone

$ git clone https://github.com/FerrumLink/FerrumServe.git
$ cd ferrum-serve

Build the project

$ cargo build --release

Running the server

By default, the server will listen on 127.0.0.1:6142. You can provide an optional IP address and port as a command-line argument.

$ ./target/release/ferrum-serve [IP:PORT]

📝 License

Copyright © 2023 Simon Guglberger

Morty Proxy This is a proxified and sanitized view of the page, visit original site.