hexe_core 0.0.5

The core components of the hexe chess engine crate.
Documentation

Travis Status AppVeyor Status LoC

What is Hexe?

Hexe is an open-source chess engine written in Rust. It is written primarily as a library, with an executable that directly utilizes that library. This project is split into two packages (crates):

  • [ lib + bin ] hexe: The chess engine itself

    • Specialized for Hexe's use cases

    • Contains all code used to run the executable

  • [ lib ] hexe_core: The chess engine's building blocks

    • Supports no_std builds

    • May be used by other chess programs for ease of code reuse

Why "Hexe"?

  1. "Hexe" is German for witch. It denotes the use of magic bitboards within this project.

  2. It refers to Clarke's Third Law: "Any sufficiently advanced technology is indistinguishable from magic."

  3. If she weighs the same as a duck... she's made of wood. And therefore...

Features

The goal of this project is to have the following features:

hexe

  • UCI compatibility
  • Aspiration Windows
  • Iterative Deepening
  • Killer Moves
  • Minimax with Alpha-Beta pruning
  • Null Move Heuristic
  • Transposition Tables
  • Work-stealing multi-threaded search

hexe_core

  • Bitboard and square-to-piece map chess board representations
  • Lookup tables and magic Bitboards without runtime initialization

Cross-Platform Compatibility

Hexe is written to be available for the main platforms that Rust compiles to. hexe and hexe_core are both automatically tested—separately—against all Tier 1 platforms. As of this writing, they are:

Platform Version Bits
macOS 10.7+, Lion+ 32/64
MinGw/MSVC Windows 7+ 32/64
Linux 2.6.18+ 32/64

hexe_core is designed to not require the Rust standard library. Because of this, it is compatible with all platforms that stable Rust compiles to.

Cross-Language Compatibility

Hexe wrappers are currently available in the following languages:

License

Hexe is licensed under either of

at your choosing.