# rubiks-cube-3x3-solver
A 3x3 Rubik's cube solver CLI (and small web GUI) built in Rust using Kociemba's two-phase algorithm.
## Build
```sh
cargo build --release
```
## Usage
Generate a random scramble:
```sh
cargo run -- scramble 25
```
Solve a scramble given in standard move notation:
```sh
cargo run -- solve "R U R' U'"
```
Solve from a 54-character facelet state (colors in U/R/F/D/L/B order):
```sh
cargo run -- solve --state "UUUUUUUUURRRRRRRRRFFFFFFFFFDDDDDDDDDLLLLLLLLLBBBBBBBBB"
```
Start a web GUI for clicking stickers to enter the cube state:
```sh
cargo run -- serve --port 8080
# open http://127.0.0.1:8080
```
## Tests
```sh
cargo test
```
## Benchmarks
```sh
cargo bench
```