libipuz.org


libipuz is a library for loading and saving the ipuz data format for pencil-and-paper puzzles. It is written in C and Rust, and has dependencies on glib and json-glib. It is licensed under terms of the LGPLv2.1-or-later and the MIT licenses.

libipuz intends to have complete compatibility with the ipuz spec (local mirror), and areas where we don’t support something correctly are considered a bug. The areas where we have extensions or clarifications are documented here

This library was primarily written for use by GNOME Crosswords, though has at least one other user. It handles the following puzzle kinds:

  • Acrostics

  • Arrowwords

  • Barred Crosswords

  • Crosswords

  • Cryptic Crosswords

  • Filipine Puzzles

  • Nonograms

  • Nonogram Color

Puzzles in italics are libipuz extensions. Other types are planned for the future.

Development

Image for: Development

Libipuz has extensive documentation, and can be used from any language that supports GObject Introspection. It is regularly tested with typescript, python, and C.

Source code

Image for: Source code

The current version of libipuz is 0.5.2

Design documents

Image for: Design documents

Rustification (ongoing)

Image for: Rustification (ongoing)

Coding style

Image for: Coding style

See http://ipuz.org/ for more information about the file format. ipuz is a trademark of Puzzazz, Inc., used with permission