PortableGameNotation.jl contains Julia language tools for processing portable game notation (PGN) files.
I’m a chess nut, and I wanted a pure Julia way to process chess games files in PGN format, so I wrote some basic tools. It is still very rough, but at this point you can quickly import the games from a PGN file and get a list of the games as structs. This allows some simple queries that can be used to build fancier applications.
My end game is to have a Julia equivalent of python-chess, but that will require implementation of a board model, game rules, UCI communication, etc. These can be implemented separately and then combined into something like a Chess.jl package. The reason I don’t just use PyCall + python-chess is that the Python package is very slow at complicated operations on large numbers of games. I believe that JIT-ing the board methods in particular will make a Julia implementation much faster.
Might be good to mention somewhere in the readme or package description that PGN is a chess game format, to save anyone who sees the package and is curious about what it does a trip to google.