Multiplayer minesweeper web app built in Rust with Leptos, Axum, and Tailwind CSS
Deployed on Fly.io
Playable (see Live Demo site above)
Features:
- Log in with OAuth2 - Google, Reddit, and Github Providers
- Only username/login is used as an internal ID. No other user data is used or stored (and internal ID is not accessible via UI)
- Create Multiplayer & Singleplayers games
- Any Custom game with 1 max player is considered Singleplayer
- Spectate any active game
- Join Multiplayers games created by someone else
- Watch Replay of a game
- Singleplayer Replays always have flags
- Multiplayer Replays only logged-in users their own flags
- View Replay analysis
- Highlights guaranteed plays
- Logged in users have profile page to see their game history or set their display name
- Basic keyboard commands (not yet mappable) as alternative to mouse buttons
minesweeper-lib contains the core minesweeper game logic as a library
Requires .env
(see .env.example
) and db/mines.db
(can use touch
or sqlite3
to create)
cargo leptos watch
Using development setup, runs on http://localhost:3000
For more information see web README
make
Using built docker setup, runs on http://localhost:8080
To stop and clean up the Docker container:
make clean