Skip to content
nyoki-mtlPublic

About

Reusable Rust shogi primitives and Python bindings

Resources

Stars

5 stars

Watchers

0 watching

Forks

Repository files navigation

rsshogi

この文書は rsshogi 1.5.1 を対象とする。 Native Book は独立圧縮ブロックを持つ wire version 4 を使用する。 旧定跡 API の削除を含むため、更新時は移行手順を確認する。

crates.io docs.rs Documentation PyPI Python MIT License

rsshogi は、将棋局面の表現、合法手生成、1 手詰め判定、棋譜や定跡の入出力、深層学習データの操作を行う MIT ライセンスの Rust ライブラリおよび Python パッケージである。

インストール

Rust

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

Python 3.10 以降で利用できる。

python -m pip install rsshogi

AVX2 対応の 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-nnue-mini:rsshogi を基盤とした USI 将棋エンジンの実装例。

ライセンス

MIT

About

Reusable Rust shogi primitives and Python bindings

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages