Crossword file formats compared: .puz, .ipuz, .jpz and more

Updated

The three crossword formats you'll meet are .puz (the old binary Across Lite standard), .jpz (an XML format from Crossword Solver and Crossword Compiler) and .ipuz (an open JSON format). Use .puz when you need the widest compatibility, .jpz or .ipuz when your puzzle depends on features .puz handles poorly, such as long rebus entries or unusual numbering.

Quick comparison

.puz .jpz .ipuz
Origin Literate Software, for Across Lite (since 1996) Crossword Solver / Crossword Compiler ecosystem Puzzazz; spec at ipuz.org
Encoding Binary XML JSON (text)
Open spec De facto standard, community-documented Published by its makers Yes, public specification
Rebus Supported but limited Not limited to 4 letters Depends on the tool
Circles / shading Circles supported Supported Supported by spec; tool-dependent
Unusual numbering, diagonal clues Limited Supported Spec is flexible; tool-dependent
Other puzzle types Crosswords Crosswords Crosswords, sudoku, word search
Best for Maximum compatibility Feature-rich online solvers Open tooling, scripts, data

Support always depends on the tool. A format may allow something your software doesn't read or write.

What is the .puz format?

.puz is the Across Lite format from Literate Software, a standard crossword file since 1996. Nearly every desktop solver and many constructors read it. It stores the grid, solution, clues, title and author, plus optional extras such as circled squares and a scrambled solution. See how to open a .puz file for apps by platform.

Its weak spots are rebus entries and exotic layouts. Crossword blogger coverage of the .jpz format notes that rebus entries in .jpz aren't limited to four letters, which implies the tighter limit in .puz.

What is the .jpz format?

.jpz is an XML format used by Crossword Solver and Crossword Compiler. It was created partly as an open alternative when it looked as though Across Lite's format might require paid licensing, and it supports more flexible numbering, layout and formatting than .puz: non-standard square numbering, diagonal clues and longer rebus entries.

What is the .ipuz format?

.ipuz is a JSON-based format. Its specification lives at ipuz.org, and the name is a trademark of Puzzazz, Inc. Because it is plain JSON, it is easy to generate and parse with ordinary programming tools, and it covers puzzle types beyond crosswords. GNOME Crosswords uses the ipuz format through its libipuz library, and Python libraries exist for reading and writing it.

Tool support varies. For example, the open-source XWord program lists .ipuz support as partial while fully reading .puz and .jpz.

What other crossword formats exist?

Which crossword file format should I use?

What does Gridsmith read and write?

Gridsmith doesn't currently offer .ipuz or .jpz. Grids are 15×15 or 21×21 and don't support rebus, so a .puz export from Gridsmith doesn't need those features. If you need another format, convert from .puz with a tool such as XWord. Learn what makes a valid grid in crossword grid rules.

Frequently asked questions

What is the difference between .puz and .ipuz?

.puz is a binary format from Across Lite, widely supported but limited for rebus and layout. .ipuz is an open, JSON-based format with a public spec at ipuz.org.

What is a .jpz file?

An XML crossword format used by Crossword Solver and Crossword Compiler. It handles features that .puz struggles with, such as long rebus entries and non-standard numbering.

Can I convert .puz to .ipuz or .jpz?

Yes, with a tool that reads one and writes the other. Check that your converter keeps clues, circles and any rebus squares; test with a copy first.

Which crossword format has the best software support?

.puz. Nearly every desktop solver and many constructors read it.

Does Gridsmith support .ipuz?

No. Gridsmith exports JSON for free and .puz with Gridsmith Plus.