A chess engine written in Rust, built for fun in my free time.
The engine uses a bitboard-based board representation and searches with alpha-beta minimax. A few things it does:
- Move ordering via MVV-LVA to get better alpha-beta cutoffs
- Quiescence search to avoid the horizon effect on captures
- Null move pruning to speed up the search
- Transposition table with Zobrist hashing to avoid re-evaluating the same position
- Parallel search at the root using rayon
- Static evaluation based on material, piece-square tables, and attacked squares
It uses UCI protocol, so you can plug it into any UCI-compatible GUI or lichess-bot.
cargo build --releaseBtw: Cornelia 🐈 + Norman 🐈⬛ = Corman. They're my cats.