Skip to content

bahmanm/libscid

Repository files navigation

libscid Logo - Winged Pawn

libscid

A C ABI library for chess games, PGN, Scid databases and ECO codes.

CI dependabot Documentation Examples

libscid is a standalone extraction of the library-grade parts of Scid and ScidUp. It is intended for chess tools, analysis pipelines, language bindings and GUIs that need mature PGN, game, database and ECO functionality without depending on a desktop application.

What It Provides

  • Opaque handles for positions, games, game cursors, PGN export options, ECO books and databases.
  • PGN import, authoring, immutable cursor traversal, merge and export workflows.
  • Board state, legal move handling, FEN, UCI and SAN helpers.
  • Scid database creation, opening, listing, editing, import and export.
  • ECO code parsing and opening-position lookup.

Start Here

Minimal CMake Consumer

cmake_minimum_required( VERSION 3.23 )

project( libscid-consumer LANGUAGES C )

find_package( libscid CONFIG REQUIRED )

add_executable( libscid-consumer main.c )
set_target_properties(
    libscid-consumer
    PROPERTIES
        C_STANDARD 11
        C_STANDARD_REQUIRED ON
        C_EXTENSIONS OFF )
target_link_libraries( libscid-consumer PRIVATE LibScid::LibScid )

Configure it with CMAKE_PREFIX_PATH pointing at a libscid installation:

cmake -S . -B _build -DCMAKE_PREFIX_PATH=/path/to/libscid
cmake --build _build

Licence

libscid is distributed under the GNU GPL v2; see COPYING. Unless stated otherwise, modifications and additions in this repository are licensed under the same terms.

About

libscid: Chess applications made easy

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Contributors