Giter Club home page Giter Club logo

apery_rust's Introduction

Apery

Apery is a free USI shogi engine derived from Stockfish and Apery(C++ version). Apery was rewritten in Rust. Apery requires a USI-compatible GUI (e.g. Shogidokoro, ShogiGUI, MyShogi).

Usage

Apery requires the evaluation function binaries as a submodule. The following are sample commands to clone, build and run Apery.

git clone https://github.com/HiraokaTakuya/apery_rust.git && \
cd apery_rust && \
git submodule init && \
git submodule update && \
cargo build --release && \
./target/release/apery <<EOF
isready
go byoyomi 5000
wait
EOF

See USI protocol on the web for details.

Rust toolchain

stable

Install

  1. Install rustup and cargo

If you use macOS, Linux, or another Unix-like OS, run the following in your terminal.

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

If you use Windows, install Visual Studio C++ Build tools and download the rustup installer.

See detail. https://www.rust-lang.org/tools/install

  1. Install apery
cargo install --git https://github.com/HiraokaTakuya/apery_rust.git

Uninstall

cargo uninstall apery

Build

An execute binary file is generated at apery_rust/target/release/apery

git clone https://github.com/HiraokaTakuya/apery_rust.git && \
cd apery_rust && \
git submodule init && \
git submodule update && \
cargo build --release

If you do not use the evaluation file, build with "material" feature instead of "kppt" feature.

cargo build --release --no-default-features --features "material"

Documentation

Build the documentation in target/doc in rustdoc's usual format.

cargo doc --document-private-items --no-deps --open

Profile

The following is a sample of how to use the profiler for Ubuntu.

  • Install valgrind, kcachegrind
sudo apt install -y valgrind kcachegrind
  • Add the following to apery_rust/Cargo.toml
[profile.release]
debug = true
  • Do the following commands.
# Build and run apery.
cd apery_rust
cargo build --release
valgrind --tool=callgrind ./target/release/apery <<EOF
isready
go byoyomi 60000
wait
EOF
# Show the profiling result.
kcachegrind callgrind.out.???? # ???? is some number.

License

Apery is free, and distributed under the GNU General Public License version 3 (GPL v3).

See the file named "LICENSE" for details.

apery_rust's People

Contributors

hiraokatakuya avatar mizar avatar tttak avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

apery_rust's Issues

入玉宣言

入玉宣言勝ちできる局面で宣言しないバグがあるように思います。

検討モード

検討モードで、表示する候補手の数>合法手の数 となる局面を検討中に他の局面に移るとエンジンがフリーズします。

Windows system compilation problems

Hello, if I want to compile the latest version on windows, what environment should I install? I'm not very good at code, is there any step-by-step instruction? Thanks for answering

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.