6 releases
Uses old Rust 2015
0.0.5 | Apr 3, 2018 |
---|---|
0.0.4 | Mar 29, 2018 |
0.0.1 | Feb 8, 2018 |
0.0.0 | Oct 16, 2017 |
#2107 in Game dev
Used in 2 crates
(via hexe)
1.5MB
5K
SLoC
A pure Rust chess engine
(pronounced "Hekseh")
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-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:
- Swift
License
Hexe is licensed under either of
at your choosing.
Dependencies
~2.5MB
~48K SLoC