Piazzolla: pure Java Syzygy tablebase probing and Polyglot book library (no JNI/FFM)

Discussion of chess software programming and technical issues.

Moderator: Ras

mcoria
Posts: 1
Joined: Sun Aug 08, 2021 3:56 pm
Full name: Mauricio Coria

Piazzolla: pure Java Syzygy tablebase probing and Polyglot book library (no JNI/FFM)

Post by mcoria »

Hi everyone,

I’d like to share Piazzolla, a Java library for working with Syzygy endgame tablebases and Polyglot opening books.

Repo: https://github.com/mcoria/piazzolla

Why it might be useful

If you’ve written a chess engine in Java, you’ve probably had to bridge to a native Syzygy probing library through JNI or the Foreign Function & Memory API. Piazzolla is a pure Java implementation, so there are no native binaries to build or ship per platform. The probing code is closely based on Ronald de Man’s implementation for Stockfish.

Features

Syzygy tablebases

WDL probing (.rtbw) for fast evaluation during search
DTZ probing (.rtbz) for root move selection and distance-to-zero
Multi-directory configurations for 3-4-5-6 piece sets
Helper methods to decode results (WDL outcome, DTZ plies, from/to squares, promotions)

Polyglot opening books

Memory-mapped reading with binary search over .bin books
Polyglot 64-bit Zobrist key generation from positions and FEN strings