Aster is developed and built in Rust only. Its native search and neural
core is crates/aster-core; it runs in the same executable as the browser host,
search visualization and independently checkable mating certificates. No external
engine, python-chess or .NET runtime is used to play. Source origins, GPL/MIT
notices and contributor credits are preserved in THIRD_PARTY_NOTICES.md,
crates/aster-core/AUTHORS and the upstream manifests.
The goal remains to surpass full-strength Stockfish in reproducible, controlled playing-strength tests. That goal has not been achieved. Adopting a strong engine's source or finding a faster build is not evidence of surpassing it.
Install Rust using rustup. The repository pins Rust 1.99.1. The x86-64 builds require AVX2/BMI2 (x86-64-v3). No .NET or C/C++ compiler is used by Aster's build. Optional upstream C tablebases and C zstd are disabled; weights are decompressed in Rust and embedded in the executable.
python scripts/fetch_rust_network.py
python scripts/fetch_aster_network.py
cargo build --release --locked
cargo test --release --locked
cargo run --release --locked -- play 5188Open http://127.0.0.1:5188. Select White or Black, set the thinking budget, play legal moves, take back moves, analyze a FEN, inspect search samples and principal variations, and export PGN. Windows convenience launchers:
./scripts/build.ps1
./scripts/play.ps1On a Windows network share, use these scripts: they put executables in a local Cargo target directory, allowing the source checkout to remain on the share. If Windows blocks unsigned scripts on the share, use a process-scoped invocation:
pwsh -NoProfile -ExecutionPolicy Bypass -File ./scripts/build.ps1
pwsh -NoProfile -ExecutionPolicy Bypass -File ./scripts/play.ps1 -SkipBuildThe web server and its search workers run the same Rust executable. Its board, move rules, SAN and proof solver are also Rust. HTML/CSS/JavaScript presentation assets are embedded; no frontend build or remote runtime service is required.
cargo run --release --locked
# uci
# isready
# position startpos moves e2e4 e7e5
# go movetime 1000
cargo run --release --locked -- bench 7
python -m pip install -r requirements-dev.txt
python scripts/verify.py
python scripts/smoke_rust_play.py
python scripts/smoke_mate_proof.pystop and isready remain responsive during search. Extra diagnostics include
legal, legal-exists, d, and aster-trace on|off. Live visualization shows actual sampled
branches (including hypothetical null moves), search-function counts, visit
heatmaps, real root attempt bounds and completed-depth evaluations. Samples are
not a recording of every searched position. Neural values are not presented as
a fictitious classical evaluation breakdown.
To export a bounded mating strategy from a FEN origin:
./target/release/aster.exe certify-mate proof.json 5 white "7k/8/5KQ1/8/8/8/8/8 w - - 0 1"
python scripts/verify_mate_proof.py proof.json --output verified-proof.jsonA complete certificate covers every legal defensive reply and ends only in real checkmate. Work limits, draw rules or an insufficient bound produce an incomplete result, never a winning certificate. This adds independently inspectable evidence alongside the heuristic playing search.
See Rust migration, roadmap, results and rating policy. The Rust build has no calibrated Elo yet. The last measured original Aster build was about 2319 (95% interval 2277–2360) on a local Stockfish 19 UCI_Elo-setting scale at 30 ms/move, one thread and 64 MiB hash. That rating is not transferred to Rust and is not a public rating.
Rust 0.9.2 shortens terminal queries while preserving fixed-depth search behavior. Its counterbalanced local benchmark takes about 6.85% less time for the same work. All 96 paired regression games finish and pass the declared engineering gates; their intervals do not establish a playing-strength gain. See the complete experiment.
Original C# code, failed experiments and archived binaries remain as historical research evidence. They are not built by current scripts or CI. Their former instructions are preserved in the legacy README. The former Berserk/C++ exploration is retained only in its research branches.
Original Aster additions are GPL-3.0-or-later; upstream files retain their own notices. See licenses and attribution and contribution guidance.