A simple, asynchronous TCP-based chat server built using Rust, Tokio, and SQLite for user account management.
A simple TCP stream forwarder for the cli. To communicate with the server
A web based client in yew.rs
- 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 โก๏ธ
To start the server download FerrumServe from the release page
$ ~/ferrum-serve 127.0.0.1:6142
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]
- Rust (stable) and Cargo ๐ฆ
- SQLite ๐๏ธ
$ git clone https://github.com/FerrumLink/FerrumServe.git
$ cd ferrum-serve
$ cargo build --release
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]
Copyright ยฉ 2023 Simon Guglberger