Rust で書かれた将棋エンジンです。
- ビットボードによる盤面表現 - 高速な合法手生成と局面評価
- NNUE評価関数 - HalfKP / HalfKA / HalfKA_hm アーキテクチャ対応
- Alpha-Beta探索 - 各種枝刈り技法(Null Move, Futility, LMR など)
- 置換表 - ロックフリーな並行ハッシュテーブル
- 時間管理 - 適応的な時間制御
- 並列探索 - Lazy SMP によるマルチスレッド探索
- USIプロトコル - Universal Shogi Interface 対応
- パス権利 - 1手パスできる機能。ハンデ戦や遊び要素として使用可能
(探索でパス権を評価するには
search-pass-rulesfeature を付けて build する。既定は無効)
crates/
├── rshogi-core/ # エンジンコアライブラリ
├── rshogi-usi/ # USI実行バイナリ
└── tools/ # 開発・学習用ツール群
エンジンのコアライブラリ。盤面表現、合法手生成、探索、NNUE評価などを提供。
USI(Universal Shogi Interface)プロトコル実装。将棋GUIから呼び出せる実行バイナリ。
開発・学習用のツール群:
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
を参照。
- Ramu Shogi - Web 将棋アプリ
本プロジェクトは将棋エンジン YaneuraOu およびチェスエンジン Stockfish を参考にしています。
GPL-3.0-or-later License - 詳細は LICENSE を参照してください。