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"?
-
"Hexe" is German for witch. It denotes the use of magic bitboards within this project.
-
It refers to Clarke's Third Law: "Any sufficiently advanced technology is indistinguishable from magic."
-
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:
- Swift
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.