GitPedia

Bulletchess

A high performance Python C extension for chess

From zedeckj·Updated June 22, 2026·View on GitHub·

`bulletchess` is a Python module for playing, analyzing, and building engines for chess. Unlike other chess libraries in Python, the core of `bulletchess` is written in C, allowing it to be [*much*](https://zedeckj.github.io/bulletchess/auto_examples/performance.html) faster than alternatives. The project is written primarily in C, distributed under the GNU General Public License v3.0 license, first published in 2025. Key topics include: chess, fen, pgn, python, uci.

Latest release: v0.4.0
September 7, 2025View Changelog →
<!-- bulletchess documentation master file, created by sphinx-quickstart on Thu May 22 18:37:37 2025. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. -->

bulletchess

Builds and Tests
PyPI version

bulletchess is a Python module for playing, analyzing, and building engines for chess. Unlike other chess libraries in Python,
the core of bulletchess is written in C, allowing it to be much faster than alternatives.

Overview

At a high level, bulletchess includes:

  • A complete game model with intuitive representations for pieces, moves, and positions.
  • Extensively tested legal move generation, application, and undoing.
  • Parsing and writing of positions specified in Forsyth-Edwards Notation (FEN), and moves specified in both Long Algebraic Notation and Standard Algebraic Notation.
  • Methods to determine if a position is check, checkmate, stalemate, and each specific type of draw.
  • Efficient hashing of positions using Zobrist Keys.
  • A Portable Game Notation (PGN) file reader
  • Utility functions for writing engines.
pip install bulletchess

Read the docs

Contributors

Showing top 1 contributor by commit count.

View all contributors on GitHub →

This article is auto-generated from zedeckj/bulletchess via the GitHub API.Last fetched: 6/27/2026