Chatr

screenshot of Chatr
svelte

Chatr

A chat room built using websockets and Rust (Axum).

Overview

Chatr is a chat room application created using websockets and the Rust programming language with the Axum framework. Users are able to connect to a server via a WebSocket connection and engage in real-time communication with one another. The client application is developed using Svelte, providing a user-friendly interface for chatting.

Features

  • Message broadcasting: Users can send messages that are broadcasted to all connected users.
  • Websocket: Utilizes websockets for real-time communication.
  • Client application: Developed with Svelte for a responsive and intuitive user interface.
  • Unique usernames: Users can choose unique usernames for identification.
  • Join/Leave messages: Displays messages when users join or leave the chat room.
  • Multiple Rooms: Supports the creation of multiple chat rooms for organizing conversations.
  • Scrolling chat: Allows users to easily view past messages by scrolling through the chat history.
  • View members of room: Capability to see a list of users currently present in the chat room.

Installation

Server

  1. Run the application server.

Frontend

  1. Navigate into the frontend directory.
  2. Install necessary packages using npm install.
  3. Run the site to launch the chat application.

Summary

Chatr is a web-based chat room application that leverages websockets and Rust on the server-side, with a Svelte-based client application. With features such as message broadcasting, unique usernames, multiple rooms, and more, Chatr provides users with a real-time communication platform for engaging conversations. The installation process involves running the server application and setting up the frontend to enable users to connect and start chatting seamlessly.

svelte
Svelte

Svelte is a modern front-end framework that compiles your code at build time, resulting in smaller and faster applications. It uses a reactive approach to update the DOM, allowing for high performance and a smoother user experience.