JustBot is a competitive chess engine written in Rust, it's my attempt at learning the language while simultaneously working on something interesting to me; it has been a lot of fun and a huge learning experience and I hope to be able to continue working on it. This project has only been possible thanks to the wonderful open-source community. JustBot contains no LLM generated code.
| CCRL | COPE | |||||
|---|---|---|---|---|---|---|
| 40/15 | Blitz 2+1 | 40/2 FRC | Bullet | Rapid | DFRC | |
| v0.5.0 | -- | 3703 [#32] | -- | 3679 [#16] | 3633 [#23] | -- |
| v0.4.0 | 3518 [#72] | -- | 3862 [#36] | 3601 [#25] | 3580 [#29] | 3600 [#24] |
| v0.3.0 | 3418 [#115] | -- | -- | 3426 [#37] | 3467 [#40] | -- |
| v0.2.0 | 3124 [#226] | -- | -- | -- | -- | -- |
| v0.1.0 | -- | -- | -- | -- | -- | -- |
You can find precompiled binaries for Linux, Windows and macOS here
avx512: The fastest build, only compatible with newer CPUsavx2: Usable on most modern CPUsgeneric: The slowest build, should run on any x86-64 CPU.aarch64-neon: For Android devices.
To build the project, you need a working installation of Rust and Cargo, once the repository is cloned, you can run:
Note
Since commit '0390631' Rust 1.95.0 or newer is required
cargo build --release
# ./target/release/justbotOtherwise, if you have GNU make installed you can just run:
make
# ./justbot| Name | Default | Max | Description |
|---|---|---|---|
| Hash | 16 | 1048576 | Sets the size of the transposition table in MB |
| Clear Hash | -- | -- | Clears all entries in the transposition table |
| Threads | 1 | 512 | Sets the number of threads to use during search |
| UCI_Chess960 | false | -- | Enables Chess960 support |
| Minimal | false | -- | Minimal UCI output |
| SoftNodes | false | -- | When a node limit is set, it will finish the current depth after hitting the limit rather than stopping instantly |
| UCI_ShowWDL | true | -- | Displays the win/draw/loss probabilities in UCI output |
- Chess Programming Wiki
- Maksim Korzh for helpful introductory videos, and where my magic numbers are from
- The very helpful members of the Stockfish Discord Server
- OpenBench as the testing framework, and for data generation
- Bullet for NNUE training
- Pawnocchio for converting PGNs to Viriformat
Additionally, the following engines have been huge sources of ideas and inspiration:
