diff --git a/README.md b/README.md index ca2ed69..8997f0d 100644 --- a/README.md +++ b/README.md @@ -8,28 +8,33 @@ Chirp is my playground for exploring the world of GTK4-rs while working on a cha 🎨 **User Interface (UI):** Chirp features an interface crafted using GTK4-rs. I'm refining it into a chat app that offers a practical and smooth experience, where messages are composed and displayed effortlessly. -
wakatime
+🌐 **WebSocket Support:** Chirp now contains a simple WebSocket server created with actix-web the GUI can communicate with, allowing usage of multiple clients with auto-reconnecting. + +
+App Screenshots + + +
## What's on the Horizon? -I've got some ideas that are brewing: +🔧 **Refining UI:** Further refining the user interface for a more user-friendly experience. -📨 **Bring It Online:** My plan is to take Chirp beyond its current state and enable online communication. Currently a work-in-progress. +🛡️ **Security:** Enhancing overall security, especially WebSocket communication and authentication. -🔒 **Add Security:** In my pipeline is the implementation of encryption measures. This will guarantee that all conversations stay confidential and secure. +🔒 **Message Encryption:** Implementation of encryption measures to further enhance the privacy and security of messages. -## Current Status +## Project Components -- `gui/`: In this section, I'm actively engaged with GTK4-rs, refining the UI to achieve a polished appearance. -- `server/`: While a work in progress, this section is to facilitate the exchange of messages between users. +- `gui/`: Contains the UI interface built with GTK4-rs along with all the logic and components to make it run. +- `server/`: Hosts a simple WebSocket server created with actix-web, facilitating communication with the GUI. ## Exploring the Project -Curious to take a peek at my progress? Follow these steps: - -1. Clone this project onto your local machine. +1. Clone this project onto your local machine `git clone https://github.com/TheRustyPickle/Chirp.git`. 2. Ensure that you have the required dependencies, including GTK4 libraries. -3. Launch the application using the command `cargo run --bin chirp-gui` +3. Start the WebSocket server using the command `cargo run --bin chirp-server` +4. Launch the GUI using the command `cargo run --bin chirp-gui` ## Get Involved diff --git a/gui/src/window.rs b/gui/src/window.rs index 914d410..ef242b8 100644 --- a/gui/src/window.rs +++ b/gui/src/window.rs @@ -56,7 +56,6 @@ mod imp { obj.setup_callbacks(); obj.setup_users(); obj.setup_actions(); - obj.setup_binding(); } } @@ -114,7 +113,7 @@ impl Window { .unwrap(); info!("Selected a new User from list"); window.set_chatting_with(selected_chat); - window.setup_binding(); + window.bind(); })); self.imp() @@ -141,7 +140,7 @@ impl Window { self.add_action(&button_action); } - fn setup_binding(&self) { + fn bind(&self) { let chatting_with = self.get_chatting_with(); chatting_with .bind_property("name", self, "title") diff --git a/server/src/session.rs b/server/src/session.rs index 468ad6b..7650e64 100644 --- a/server/src/session.rs +++ b/server/src/session.rs @@ -5,8 +5,7 @@ use actix_web_actors::ws; use tracing::info; use crate::server::{ - ChatServer, ClientMessage, CommunicateUser, CommunicationType, Connect, - Disconnect, Message, + ChatServer, ClientMessage, CommunicateUser, CommunicationType, Connect, Disconnect, Message, }; const HEARTBEAT_INTERVAL: Duration = Duration::from_secs(5);