この文書は rsshogi 1.5.1 を対象とする。 Native Book は独立圧縮ブロックを持つ wire version 4 を使用する。 旧定跡 API の削除を含むため、更新時は移行手順を確認する。
rsshogi は、将棋局面の表現、合法手生成、1 手詰め判定、棋譜や定跡の入出力、深層学習データの操作を行う MIT ライセンスの Rust ライブラリおよび Python パッケージである。
Cargo.toml に追加する(Rust 1.95 以降が必要)。
[dependencies]
rsshogi = "1.5.1"デフォルトでは探索エンジン向けの最小コア(board、mate、types、movegen)のみが有効になる。
棋譜(records)、定跡(book)、Policy ラベル(policy-labels)、256-bit 局面圧縮(position-serialization)、SVG 出力(svg)、局面検証(validation)、128-bit Zobrist ハッシュ(hash-128)は Cargo の features で選択できる。
[dependencies]
rsshogi = { version = "1.5.1", features = ["records", "book"] }各 Feature の詳細は rsshogi マニュアルの全体アーキテクチャ および docs.rs の Feature flags を参照。
Python 3.10 以降で利用できる。
python -m pip install rsshogiAVX2 対応の x86_64 CPU 環境では最適化ビルドを選択できる。
python -m pip install rsshogi-avx2どちらも rsshogi として import するため、同一環境には一方のみをインストールする。
Rust:
use rsshogi::board;
let position = board::position_from_sfen(
"lnsgkgsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL b - 1",
)?;
assert_eq!(
position.to_sfen(None),
"lnsgkgsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL b - 1"
);
# Ok::<(), Box<dyn std::error::Error>>(())Python:
from rsshogi.core import Board, Move
board = Board()
move = Move.from_usi("7g7f")
board.apply_move(move)
print(board.to_sfen())- rsshogi マニュアル(mdBook):Python API リファレンス、棋譜・定跡・教師データのフォーマット仕様、内部データ構造とアルゴリズムの解説。
- Rust API リファレンス(docs.rs):Rust クレートの全公開型と関数の仕様。
- CHANGELOG:バージョンごとの変更履歴。
- rsshogi-nnue-mini:
rsshogiを基盤とした USI 将棋エンジンの実装例。
MIT