shakmaty
A Rust library for chess move generation
Features
-
Generate legal moves:
use ; let pos = default; let legals = pos.legals; assert_eq!;
-
Play moves:
use ; // 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 magic attack tables.
Documentation
Changelog
- 0.2.0
Square
is now a#[repr(u8)]
enum- Use
bitflags
forPositionError
- Renamed
RemainingChecks::subtract()
todecrement()
- Added
Position::swap_turn()
- 0.1.0
- First release with support for stable Rust.
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.