Skip to content

IrakliAmbroladze/chess-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

111 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Real-Time Multiplayer Chess

A full-stack chess application built entirely in Rust, featuring real-time multiplayer gameplay with WebSockets, timers, and full chess rules validation.

Rust

Features

  • Real-time Multiplayer - Play chess with anyone using WebSockets
  • Private Game Rooms - Create or join games with unique room codes
  • Full Chess Rules - Complete move validation including castling, en passant, and pawn promotion
  • Live Timers - 10-minute countdown timer per player
  • Move History - Track all moves in Standard Algebraic Notation (SAN)
  • Modern UI - Responsive design with smooth animations
  • Board Rotation - Black player automatically sees a flipped board
  • Pawn Promotion - Interactive dialog for choosing promotion piece

Technology Stack

Frontend

Backend

Deployment

Quick Start

1. Install Dependencies

# Install Rust (if not already installed)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Install Trunk
cargo install trunk

# Add WASM target
rustup target add wasm32-unknown-unknown

2. Clone and Setup

git clone https://github.com/IrakliAmbroladze/chess-app.git
cd chess-app

3. Run Locally

Terminal 1 - Frontend:

trunk serve

Terminal 2 - Backend:

cargo run --bin server --features ssr

Open your browser:

http://localhost:8080

Project Structure

chess-app/
├── src/
│   ├── main.rs              # Axum server & WebSocket handler
│   ├── lib.rs               # Leptos app entry point
│   ├── shared.rs            # Shared types (Client/Server messages)
│   ├── game.rs              # Chess game state & move validation
│   └── components/
│       ├── mod.rs           # Component exports
│       ├── home.rs          # Home page (create/join)
│       ├── game.rs          # Game page with WebSocket
│       └── board.rs         # Chess board component
├── Cargo.toml               # Rust dependencies
├── index.html               # HTML entry point
├── style.css                # Styling
├── Trunk.toml               # Trunk configuration
├── Dockerfile               # Production deployment
├── fly.toml                 # Fly.io configuration
└── README.md

Contact

Created by @IrakliAmbroladze

Project Link: https://github.com/IrakliAmbroladze/chess-app

Live Demo: https://chess-app-irakli.fly.dev


Built with ❤️ and 🦀 Rust

About

Real-Time Multiplayer Chess

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors