hexe_core 0.0.2

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-Language Compatibility

Hexe wrappers are currently available in the following languages:

License

Hexe is licensed under either of

at your choosing.

Note: This project initially began on 2017-01-04 in a separate repository. This repo is a rewrite and expansion of that one.