From Chessprogramming wiki
Jump to: navigation, search

Home * Software * Utilities * Chess.jl

a chess programming library by Tord Romstad, written in the Julia programming language [1]. Chess.jl has functions to create and manipulate chess games, chess positions and sets of squares on the board (aka Bitboards [2]). It can read and write chess games in PGN format (including support for comments and variations), create opening books, and interact with UCI chess engines [3], for instance to play engine versus engine matches for tuning and NNUE training purposes.


Chess.jl features following data types and APIs. Scalar data types like Squares and Pieces with discrete enumerated value range are internally wrapper around integer.


The SquareSet aka Bitboard API [4] provide setwise operations including shifts, and piece-wise attack getter - for sliding pieces from a given square and occupancy. There are also functions to transform a SquareSet into a vector of squares.


Using a chess board object through a Pluto [5] or Jupyter notebook, features a graphical board, along with a board representation link in lichess.

See also

Forum Posts

External Links


Up one Level