[package]
name = "rsshogi"
version = "1.2.2"
edition = "2024"
rust-version = "1.95"
license = "MIT"
description = "Reusable Rust shogi primitives for board state, move generation, legality, and record parsing."
repository = "https://github.com/nyoki-mtl/rsshogi"
keywords = ["shogi"]
categories = ["games"]
exclude = ["src/bin/**"]
publish = true
[dependencies]
thiserror = "2"
log = "0.4"
encoding_rs = { version = "0.8", optional = true }
serde = { version = "1.0", features = ["derive"], optional = true }
serde_json = { version = "1.0", optional = true }
ordered-float = { version = "4.6", optional = true }
[features]
default = []
hash-128 = []
policy-labels = []
position-serialization = []
svg = []
validation = []
initial-positions = []
book = ["initial-positions", "position-serialization"]
records = [
"position-serialization",
"initial-positions",
"policy-labels",
"dep:encoding_rs",
"dep:serde",
"dep:serde_json",
"dep:ordered-float",
]
python-data = ["book", "records", "position-serialization", "svg", "validation"]
[dev-dependencies]
criterion = { version = "0.5", default-features = false, features = ["cargo_bench_support"] }
shogi_core = "0.1.5"
proptest = { version = "1.4", default-features = false, features = ["std"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
[[bench]]
name = "apply_undo"
harness = false
[[bench]]
name = "movegen"
harness = false
[[bench]]
name = "mate"
harness = false
[[bench]]
name = "attack_tables"
harness = false
[[bench]]
name = "ki2"
harness = false
[[example]]
name = "sazpack_measure"
required-features = ["records"]
[[example]]
name = "sbinpack_size_breakdown"
required-features = ["records"]