API Reference Echecs v#0.1.5

Copy Markdown View Source

Modules

Echecs is a pure Elixir chess library for move generation, validation, and game state management.

Legacy struct-based bitboard container, superseded by the Echecs.Board tuple representation used throughout the engine.

Constants for Bitboard operations

Low-level bit manipulation helpers for bitboards.

Magic-bitboard attack lookups for sliding pieces (rooks, bishops).

Finds magic numbers and attack tables for sliding pieces (rooks, bishops).

Compile-time attack and geometry tables for non-sliding queries.

Chess board as a 15-element tuple of 64-bit integer bitboards.

Parsing and generation of Forsyth-Edwards Notation (FEN) strings.

Complete state of a chess game: board tuple, side to move, castling rights (bit flags wk = 1, wq = 2, bk = 4, bq = 8), en-passant square, half/fullmove clocks, position history, Zobrist hash and cached king squares.

Chess moves as structs and as packed integers.

Legal-only move generation using the check-mask + pin-mask technique.

Minimal PGN move-text parser and replayer.

Performance-test (perft) helpers for validating move generation.

Piece colors (:white, :black) and types (:pawn, :knight, :bishop, :rook, :queen, :king).

Zobrist hashing for fast position identity and repetition detection.

Mix Tasks

Runs deterministic benchmarks for move generation, perft, PGN replay, and hashing.