[package]
name = "esca"
version = "0.3.0"
description = "A chess model that answers what is true about a position: variants, positions, games, and move text."
keywords = ["chess", "chess960", "fen", "san", "position"]
categories = ["games", "game-development"]
readme = "README.md"
homepage = "https://github.com/AnglerfishChess/anglerfish"
documentation = "https://docs.rs/esca"
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
[lib]
crate-type = ["cdylib", "rlib"]
[features]
default = []
lichess = ["dep:serde", "dep:serde_json", "dep:zstd"]
openings = []
pgn = []
polyglot = ["dep:memmap2"]
python = ["dep:numpy", "dep:pyo3", "dep:rayon"]
uci = ["dep:log"]
tokio = ["uci", "dep:tokio"]
[dependencies]
blake3 = "1"
cozy-chess = "0.3.4"
log = { version = "0.4", optional = true }
memmap2 = { version = "0.9", optional = true }
numpy = { version = "0.29", optional = true }
pyo3 = { version = "0.29", optional = true, features = ["abi3-py312"] }
rayon = { version = "1", optional = true }
serde = { version = "1", optional = true, features = ["derive"] }
serde_json = { version = "1", optional = true }
tokio = { version = "1", optional = true, features = [
"io-util",
"macros",
"process",
"rt",
"sync",
"time",
] }
zstd = { version = "0.13", optional = true }
[dev-dependencies]
criterion = "0.5"
proptest = "1"
rstest = { version = "0.26.1", default-features = false }
[[bench]]
name = "facts"
harness = false