chess-oxide 0.3.2

A chess engine library written in Rust, with a GUI bin to play against it.
Documentation

Chess Oxide

A chess engine written in Rust.

Features

  • Move Generation: Efficient move generation for all pieces using a mailbox system.
  • Position Representation: Uses a 64-square array for position representation.
  • Board Representation: Data and functions required to run a chess game.
  • Zobrist Hashing: Implements Zobrist hashing for fast position comparison.
  • Perft Testing: Performance testing for move generation.
  • Error Handling: Error handling for user facing functions.
  • GUI Integration: Basic GUI for visualizing the board and moves using Slint.
  • FEN/PGN Implementations: Implementation of FEN and PGN standards for import/export of board states.
  • Engine: Implemented using a negamax algorithm implementing alpha/beta pruning.
  • Transposition Table: Implementation of a Transposition Table to use with engine.
  • Engine Debug Feature: Enabling 'debug_engine_logging' feature gives detailed breakdown of the nodes searched in engine.
  • Logging: Library uses 'log' crate and frontends use 'env_logger'.

Installation

To build and run the project, ensure you have Rust installed. Clone the repository and run:

cargo build [--bin] [--release]

Usage

To run the chess engine with the GUI:

cargo run --bin chess-gui [--release]

To run the basic performance test:

cargo run --bin chess-perft [--release]

Example using environment variable RUST_LOG for env_logger configuration:

RUST_LOG=debug cargo run --bin chess-gui --release

License

This project is licensed under the MPL-2.0 License.