A multi-threaded Sudoku solver written in Rust
rustfmt sudoku.rs && rustc sudoku.rs
# Easy:
time echo "3..9..7.11....45.9984........9.268..4...9...5..241.6........4122.38....76.1..9..8" | ./sudoku 1
time echo "3..9..7.11....45.9984........9.268..4...9...5..241.6........4122.38....76.1..9..8" | ./sudoku 2
# Hard:
time echo "...6....17...945..4....2....5..1.7.2.2.....6.3.6.8..9....8....7..376...89....3..." | ./sudoku 1
time echo "...6....17...945..4....2....5..1.7.2.2.....6.3.6.8..9....8....7..376...89....3..." | ./sudoku 2
time echo "..74..6...3.1...7...9.5.....7....3...26.9.71...1....9.....2.1...8...3.2...5..18.." | ./sudoku 1
time echo "..74..6...3.1...7...9.5.....7....3...26.9.71...1....9.....2.1...8...3.2...5..18.." | ./sudoku 2
# Really, really hard (you can actually feel the solver speed up using ~4 threads):
time echo ".....5....9..2..5.7.3...8.9..9.....1.4..5..8.3.....7..2.7...6.3.8..3..1....4....." | ./sudoku 1
time echo ".....5....9..2..5.7.3...8.9..9.....1.4..5..8.3.....7..2.7...6.3.8..3..1....4....." | ./sudoku 4