xngln / michess

an attempt to build an async chess server using rust and web assembly

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

michess

wip - an attempt to build an async online chess server using rust and web assembly. Web server is Warp. Runtime is Tokio. DB is PostgreSQL and caching of game state is done with Redis. Server uses GraphQL with the async-graphql implementation. UI uses Rust WASM on the Seed framework with Tailwind CSS and is built using Trunk.

setup & requirements

todo

accounts / authentication
  • account creation
  • login ( password salting, hashing )
  • guest account
  • profile page with win / losss / draw info
matchmaking
  • a player can search for another player to challenge
  • prevent challenges to offline players
  • ability to face a random online player
  • can open multiple games with multiple players
  • close connection if no activity within time limit
chess
  • draw board and pieces
  • allow piece movement
  • implement piece capturing
  • implement castling
  • implement en passant
  • disallow illegal moves
  • implement elo system
  • implement different time controls
  • implement pre-moving
  • implement move history (see what the previous moves were)

About

an attempt to build an async chess server using rust and web assembly


Languages

Language:Rust 98.9%Language:HTML 0.8%Language:SCSS 0.3%