Skip to content

codedeliveryservice/Reckless

Repository files navigation

Reckless – Chess Engine in Rust

Build and Test

Guided by the insights from the chess programming community, it fearlessly combines established concepts with its reckless nature, as the name suggests.

Rating

Version CCRL Blitz CCRL 40/15 Release Date
Reckless v0.7.0 3505 +/- 16 [#59] 3407 +/- 25 [#61] Aug 23, 2024
Reckless v0.6.0 3386 +/- 16 [#78] 3318 +/- 16 [#83] Mar 22, 2024
Reckless v0.5.0 3243 +/- 19 [#94] 3213 +/- 21 [#94] Feb 4, 2024
Reckless v0.4.0 2933 +/- 19 [#151] 2929 +/- 21 [#158] Dec 13, 2023
Reckless v0.3.0 2617 +/- 20 [#229] 2615 +/- 21 [#251] Nov 6, 2023
Reckless v0.2.0 2358 +/- 19 [#333] Oct 7, 2023
Reckless v0.1.0 2020 +/- 20 [#471] May 16, 2023

Getting started

Precompiled binaries

You can download precompiled builds from the GitHub Releases page.

  • x86_64-v1: Slowest, compatible with any x86-64 CPU.
  • x86_64-v2: Faster, requires support for POPCNT, SEE3, etc.
  • x86_64-v3: Even faster, requires support for AVX2, etc.
  • x86_64-v4: Fastest, requires support for AVX512.

For detailed information on the specific features needed for each level, refer to the x86-64 microarchitecture levels Wikipedia page.

Building from source

Make sure you have Rust 1.79.0 or a later version installed. If not, follow the official Rust installation guide.

cargo rustc --release -- -C target-cpu=native
# ./target/release/reckless

PGO builds

For profile-guided optimization (PGO) builds, you need to install additional tools:

rustup component add llvm-tools
cargo install cargo-pgo

Then, you can build the engine using make:

make
# ./reckless

Or run the steps manually:

cargo pgo instrument
cargo pgo run -- bench
cargo pgo optimize
# ./target/x86_64-unknown-linux-gnu/release/reckless
# (the path may vary based on your system)

Usage

Reckless is not a standalone chess program but a chess engine designed for use with UCI-compatible GUIs, such as Cute Chess, En Croissant, or Nibbler.

Custom commands

Along with the standard UCI commands, Reckless supports additional commands for testing and debugging:

Command Description
perft <depth> Run a perft test to count the number of leaf nodes at a given depth
bench <depth> Run a benchmark on a set of positions to measure the engine's performance
eval Print the static evaluation of the current position from white's perspective
compiler Print the compiler version, target and flags used to compile the engine

Acknowledgements

About

UCI chess engine written in Rust

Topics

Resources

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •