docs.rs failed to build shakmaty-0.7.2
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build:
shakmaty-0.27.0
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, Chess960, Giveaway, Atomic, King Of The Hill, Three-Check, Crazyhouse, Racing Kings and Horde. Provides vocabulary to implement other variants.
-
Bitboards and compact fixed shift magic attack tables.
-
Probe Syzygy tablebases with shakmaty-syzygy.
Documentation
Changelog
- 0.7.2
- Add
Outcome.winner()
.
- Add
- 0.7.1
- Minimum Rust version 1.26.0 (fused iterators, u128 conversions).
- 0.7.0
- Reintroduce the remaining Lichess variants:
Crazyhouse
,KingOfTheHill
,ThreeCheck
,Horde
,RacingKings
. - Expose
Position.castles()
and replacePosition.is_chess960()
withPosition.castles().is_chess960()
. - Fix insufficient material: KNvK was not given as drawn due to a typo.
- Fix insufficient material in
Atomic
: Two knights of different colors are not safe. - Let
Pockets.count()
andPocket.count()
returnusize
.
- Reintroduce the remaining Lichess variants:
- 0.6.7
- Giveaway starting position should have no castling rights.
- 0.6.6
- Fix missing king promotions in Giveaway.
- 0.6.5
- Validate color of missing king in atomic chess.
- Clear move buffers before generating variant moves.
- 0.6.4
- Reintroduce
Giveaway
andAtomic
chess variants.
- Reintroduce
- 0.6.3
- New method
Move.is_zeroing()
.
- New method
- 0.6.2
- Make unit error types (
InvalidSquareName
,InvalidUci
,InvalidSan
) completely public. - Documentation, coding style and debugging tweaks.
- Make unit error types (
- 0.6.1
- Expose
attacks::bishop_mask
andattacks::rook_mask
. - Eliminate almost all unchecked indexing.
- Expose
- 0.6.0
- Split
impl From<Move> for Uci
intouci()
andchess960_uci()
. - Fix display of pawn drops.
- Move generating methods clear the move buffer (and therefor no longer panic on too full buffers).
- Added
Position.is_chess960()
,Bitboard.without_all()
,Role.upper_char()
,Board.stepper()
.
- Split
- 0.5.1
- Fix
Uci::to_move()
for en passant moves. Thanks zxqfl.
- Fix
- 0.5.0
- Use
u64
instead ofusize
forperft()
. - Export error type
InvalidSquareName
. - New methods:
CastlingSide.is_{queen|king}_side()
,San.matches()
,Move.is_capture()
,Move.is_promotion()
,Move.castling_side()
,Position.is_check()
. - Derive
Ord
andPartialOrd
forRole
. - Support running benchmarks on stable.
- Use
- 0.4.2
- Fix build error on beta due to the new nightly
option_filter
feature. - Fix unterminated code block in documentation.
- Fix build error on beta due to the new nightly
- 0.4.1
- Fix build error due to the new nightly
option_filter
feature.
- Fix build error due to the new nightly
- 0.4.0
- Rename
Color::from_bool()
toColor::from_white()
, addColor::from_black()
. - Add
Move::role()
,Move::is_en_passant()
andMove::is_castle()
. - Add
Position::en_passant_moves()
andPosition::capture_moves()
. - Implement
BitXor<bool>
forColor
. - Implement
FusedIterator
andTrustedLen
onBitboard
.
- Rename
- 0.3.0
- Switch to
#[repr(i8)]
forSquare
. Implement all lossless integer conversionsFrom<Square>
. - Add
Square::flip_horizontal()
,flip_vertical()
andflip_diagonal()
. - Efficiently implement
CarryRippler::last()
by @nvzqz. - Eliminate some unchecked indexing by @nvzqz.
- Faster ASCII case conversions and tests by @nvzqz.
- Switch to
- 0.2.0
Square
is now a#[repr(u8)]
enum.- Use
bitflags
forPositionError
. - Rename
RemainingChecks::subtract()
todecrement()
. - Add
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.