๐Ÿ“ฆ huangsam / rustoku

Lightning-fast Sudoku ๐Ÿฆ€

โ˜… 30 stars โ‘‚ 4 forks ๐Ÿ‘ 30 watching โš–๏ธ MIT License
bitflagscargoclapcrates-iocriterionhacktoberfestpuzzlerustrust-randsudokuthiserror
๐Ÿ“ฅ Clone https://github.com/huangsam/rustoku.git
HTTPS git clone https://github.com/huangsam/rustoku.git
SSH git clone git@github.com:huangsam/rustoku.git
CLI gh repo clone huangsam/rustoku
Samuel Huang Samuel Huang Update agentic docs formatting cf6cb28 1 months ago ๐Ÿ“ History
๐Ÿ“‚ main View all commits โ†’
๐Ÿ“ .github
๐Ÿ“ rustoku-cli
๐Ÿ“ rustoku-lib
๐Ÿ“„ .gitignore
๐Ÿ“„ AGENTS.md
๐Ÿ“„ Cargo.lock
๐Ÿ“„ Cargo.toml
๐Ÿ“„ LICENSE
๐Ÿ“„ README.md
๐Ÿ“„ README.md

Rustoku

GitHub Actions Workflow Status docs.rs License

Lightning-fast Sudoku solving and generation, crafted in Rust.

Rustoku is a highly optimized Sudoku puzzle solver and generator built with a focus on speed and clarity. It leverages [bitmasking] for constraint tracking and a backtracking algorithm with [MRV] for puzzle navigation. Available as a Rust [library] and [CLI].

  • Fast solving with clear solve paths: Rustoku can find solutions in microseconds, even
for the most complex puzzles. Plus, it shows you the step-by-step solve path for understanding how the solution was reached
  • Unique and configurable puzzle generation: Create Sudoku puzzles that are guaranteed to
have only one solution. You can also customize the difficulty by generating puzzles with a specific number of clues
  • Human-like puzzle solving: Take control with Rustoku's CLI interface. Beyond raw speed, it
mimics human expertise, employing a full range of techniques from [Naked Singles] to [X-Wing] to solve puzzles with precision

Getting Started

Commands to get you going:

# This installs the binary at $HOME/.cargo/bin
cargo install rustoku-cli

# Generate puzzles
rustoku-cli generate
rustoku-cli generate --clues 45

# Solve puzzles
rustoku-cli solve any 530070000600195000098000060800060003400803001700020006060000280000419005000080079
rustoku-cli solve all 295743001431865900876192543387459216612387495549216738763500000000000000000000000

# Check solutions
rustoku-cli check 295743861431865927876192543387459216612387495549216738763524189154938672928671354

# Display puzzle
rustoku-cli show 900507400007080000830401006402000300090000065000050080200908000080074000700210803

Example output from the show command:

+-------+-------+-------+
| 9 . . | 5 . 7 | 4 . . |
| . . 7 | . 8 . | . . . |
| 8 3 . | 4 . 1 | . . 6 |
+-------+-------+-------+
| 4 . 2 | . . . | 3 . . |
| . 9 . | . . . | . 6 5 |
| . . . | . 5 . | . 8 . |
+-------+-------+-------+
| 2 . . | 9 . 8 | . . . |
| . 8 . | . 7 4 | . . . |
| 7 . . | 2 1 . | 8 . 3 |
+-------+-------+-------+
Line format: 900507400007080000830401006402000300090000065000050080200908000080074000700210803

Try some more examples from these sites:

Dive into the world of high-performance Sudoku today!