Skip to content

Repository files navigation

rshogi

Rust で書かれた将棋エンジンです。

Crates.io Documentation License: GPL-3.0-or-later

特徴

  • ビットボードによる盤面表現 - 高速な合法手生成と局面評価
  • NNUE評価関数 - HalfKP / HalfKA / HalfKA_hm アーキテクチャ対応
  • Alpha-Beta探索 - 各種枝刈り技法(Null Move, Futility, LMR など)
  • 置換表 - ロックフリーな並行ハッシュテーブル
  • 時間管理 - 適応的な時間制御
  • 並列探索 - Lazy SMP によるマルチスレッド探索
  • USIプロトコル - Universal Shogi Interface 対応

オプショナルな独自ルール

  • パス権利 - 1手パスできる機能。ハンデ戦や遊び要素として使用可能 (探索でパス権を評価するには search-pass-rules feature を付けて build する。既定は無効)

クレート構成

crates/
├── rshogi-core/    # エンジンコアライブラリ
├── rshogi-usi/     # USI実行バイナリ
└── tools/          # 開発・学習用ツール群

rshogi-core

Crates.io

エンジンのコアライブラリ。盤面表現、合法手生成、探索、NNUE評価などを提供。

rshogi-usi

USI(Universal Shogi Interface)プロトコル実装。将棋GUIから呼び出せる実行バイナリ。

tools

開発・学習用のツール群:

  • benchmark - 探索性能ベンチマーク
  • bench_nnue_eval - NNUE推論性能ベンチマーク
  • gensfen - NNUE 学習用 PSV/pack 教師局面生成
  • tournament - エンジン間棋力比較・SPRT
  • 教師データ処理(shuffle, rescore, preprocess 等)
  • SPSA パラメータチューニング

NNUE 学習には bullet-shogi を使用しています。

インストール

Cargo.toml に追加:

[dependencies]
rshogi-core = "0.7"

ビルド

.cargo/config.toml で target-cpu=native を採用しているため、cargo build だけで build マシンの SIMD (AVX2 等) は自動で有効になる。

# 開発用 build (全 NNUE arch を runtime dispatch)
cargo build --release

# テスト実行
cargo test

複数 NNUE architecture binary を engines/ 配下で並行管理したい場合 (selfplay / SPRT / tournament 等) は cargo xtask 経由で preset edition ごとに別 binary を build できる:

# 利用可能な preset edition を列挙
cargo xtask list-editions

# 特定 preset を build (engines/rshogi-usi-<edition> に配置 + .meta.toml 記録)
cargo xtask build --edition layerstacks-halfka_hm_merged-1536x16x32-psqt

# 複数 preset を一気に build
cargo xtask build --edition X,Y
cargo xtask build --all-presets

# Edition 軸と直交する opt-in feature を追加 (engines/rshogi-usi-<edition>+mimalloc に配置)
cargo xtask build --edition X --features mimalloc

# engines/ 配下の binary 一覧 (preset / commit / age / status を表示)
cargo xtask list-binaries

詳細は docs/build.md と ADR docs/decisions/2026-05-24-build-edition-flavor-design.md を参照。

このエンジンを使用したアプリ

参考・影響

本プロジェクトは将棋エンジン YaneuraOu およびチェスエンジン Stockfish を参考にしています。

ライセンス

GPL-3.0-or-later License - 詳細は LICENSE を参照してください。

About

Rust製将棋エンジン / 開発者ツール

Topics

Resources

Stars

15 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages