PGN
Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.
PGN Chess Preview.
At a glance
| Purpose | A Portable Game Notation file: one or more chess games, each with header tags and move text. |
| Extensions | .pgn |
| Poka parser | poka-pgn |
| Viewer | poka-table-viewer |
| Depth tier | Parser with a shared viewer (see Depth tiers) |
| Breadth tier | B4 Summary (see Breadth tiers) |
How much Poka reads
B4 Summary. The container and metadata are read and summarised (counts, properties, structure), but the main content is not rendered.
Confidence: medium (the reviewer read the code). Basis: Reviewed 2026-10-26: read parsers/poka-pgn/src/main.rs (264 lines) and plugin.json. No unit tests or tests/samples.rs, and the corpus has no .pgn sample. Covers .pgn. The table gives one row per game with date, event, White, Black, result, move count and opening (or ECO), and a summary of results. Judgement: B4: the games are listed and counted but the moves are not shown.
What Poka does not read
- The moves are not shown and no board is drawn
- Comments, variations and annotations are skipped
- Only Event, Site, Date, White, Black, Result, ECO and Opening are read; other tags (Round, ratings, TimeControl, FEN) are not, and Site is not shown
- The move count is the highest move number, not checked against the moves
- Only the first 1,000 games are listed; files over 64 MiB are cut without a flag
Libraries
Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.
- pgn-reader (reference; GPL-3.0; Rust; https://github.com/niklasf/rust-pgn-reader) — copyleft; Fast streaming visitor-based PGN reader, no move validation; repo archived and merged into shakmaty. Copyleft licence.
- python-chess (reference; GPL-3.0; Python; https://github.com/niklasf/python-chess) — copyleft; Reads and writes PGN including comments, NAGs and variations; copyleft licence.
- pgn-to-aix (reference; GPL-3.0+; Rust; https://github.com/thomas-daniels/aix) — copyleft; Generates Aix-compatible Parquet file from PGN files of chess games; v0.1.1, updated 2026-02-04; matched on lib.rs, not tested
- cgn (candidate; MIT; Rust; https://github.com/JadenStrudwick/cgn/) — A library for optimally compressing chess games in PGN format.; v0.1.5, updated 2024-09-28; matched on lib.rs, not tested
- cgn-cli (candidate; MIT; Rust; https://github.com/JadenStrudwick/cgn-cli/) — A command-line tool for optimally compressing chess games in PGN format.; v0.1.3, updated 2024-09-28; matched on lib.rs, not tested
- c2g (reference; GPL-3.0+; Rust; https://github.com/tomasfarias/c2g) — copyleft; Turn your chess PGN files into GIFs!; v0.9.0, updated 2024-05-09; matched on lib.rs, not tested
Sources
- parsers/poka-pgn/src/main.rs
- parsers/poka-pgn/plugin.json