shakmaty
A Rust library for chess move generation
Features
-
Generate legal moves:
use ; let pos = default; let mut legals = new; pos.legal_moves; assert_eq!; -
Play moves:
use ; use square; // 1. e4 let pos = pos.play?; -
Detect game end conditions:
pos.is_checkmate(),pos.is_stalemate(),pos.is_insufficient_material(),pos.outcome(). -
Read and write FENs, SANs and UCIs.
-
Supports Standard chess and Chess960. Provides vocabulary to implement other variants.
-
Bitboards and compact fixed shift black magic attack tables.
Documentation
License
Shakmaty is licensed under the GPL-3.0 (or any later version at your option). See the COPYING file for the full license text.