PUZ (crossword puzzles)

The PUZ crossword puzzle data format (unrelated to the PUZ document format used by Microsoft Publisher) is a format used for electronically-distributed crossword puzzles. It was created for the Across Lite program, and became a de facto standard for online crosswords, including the popular New York Times puzzles. No official file format documentation was provided (the producers probably would have preferred it remain proprietary), but it has been reverse-engineered and is now used in many crossword programs and apps (though perhaps not so many after some more recent saber-rattling by the legal department of the owner of the originating program). For a long time, reverse-engineered implementations were unable to decode the "scrambled" version of the file format, where the correct answers to the puzzle are encrypted with a four-digit key needed to unlock them (you can still do the puzzle without unscrambling the answers, as the grid layout and clues are not encrypted, but have no way of checking your answers), but eventually somebody reverse-engineered that as well (a tour-de-force of computer science and mathematics by Brian Raiter, linked below; Mike Richards apparently also discovered the algorithm as documented in comments in another of the links below).

Across Lite also has a "text format" of puzzles, which can be used to create puzzles which the Across Lite program can convert into the binary format for distribution. Unlike the binary format itself, the publisher of Across Lite has documented that format to allow third parties to use it.

After an acquisition in 2011, the owners of Across Lite are reportedly getting more aggressive in enforcing whatever intellectual property rights they may claim to have in the format, which could cause trouble for reverse-engineers. Other alternative puzzle formats include JPZ and IPUZ, the latter of which is explicitly designated a "free format".

Identification
Starting at the third byte (position 02), files have the ASCII string "ACROSS&DOWN" followed by a null byte, giving it the byte signature. The first two bytes are a checksum, one of several that exist within the file format.

Format documentation

 * File format documentation
 * Reverse-engineering the scrambling algorithm, by Brian Raiter
 * Official documentation of Across Lite text puzzle format
 * Another format description

Software

 * XWord program code

Utilities

 * PUZ file in-browser rendering (via Derek Slager)
 * PUZ file in-browser rendering (via Crossword Nexus)

Other links

 * See? I’m telling you, make peace with Puzzle Solver