Crabby is an original UCI chess engine written in the rust programming language. Crabby gets its name from the rust mascot, Ferris the crab. This project is an experiment to learn a new language and explore chess programming. I would greatly appreciate all feedback on my progress for both!
Crabby currently requires a nightly version of the rust compiler. If there is a compiler error, please try the latest nightly and then finally submit an issue.
git clone https://github.com/Johnson-A/Crabby.git
cd Crabby
cargo build --release
./target/release/crabby
To make use of native CPU features, as specified in compile,
cargo rustc --release -- -C target-feature=+popcnt -C target-cpu=native
- Nega-Max alpha beta pruning
- Iterative deepening
- PVS
- Quiescence Search
- Null move pruning
- Late Move Reduction
- Killer move heuristic
- Static exchange evaluation
- Transposition Table with Zobrist hashing
- Bitboard based representation
- Magic move generation
- Aspiration window
- Time manager -> improvements
- PVS or MTD(f) -> improvements
- Piece-square evaluation
- Evaluation -> improvements
- 50 move rule
- Multi-threaded search
- Parameter Optimization
- UCI option parsing and implementation
- perft x - Run perft to a depth x
- test move - Run perft on many positions to validate move generation
- test perf - Search to a given depth in many positions to test performance
I'd like to thank the chess programming wiki, the talk chess forums, and the open source Stockfish engine for being great resources.
Crabby is licensed under the GNU General Public License (GPLv2) as specified in the LICENSE