# libipuz.org ![libipuz logo](logo-thumb.png)
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. The current version of libipuz is 0.5.2. libipuz intends to have complete compatibility with the [ipuz spec](https://ipuz.org) ([local mirror](https://libipuz.org/ipuz-spec.html)), and areas where we don't support something correctly are considered a bug. The areas where we have [extensions or clarifications are documented here](ipuz/ipuz-extensions.md). This library was primarily written for use by [GNOME Crosswords](https://gitlab.gnome.org/jrb/crosswords), though has at least one other user. It handles the following puzzle kinds. Puzzles in italics are libipuz extensions, and other types are planned for the future: * Acrostics * Arrowwords * Barred Crosswords * Crosswords * Cryptic Crosswords * _Filipine Puzzles_ * _Nonograms_ * _Nonogram Color_ libipuz has extensive documentation, and can be used from any [language that supports GObject Introspection](https://gi.readthedocs.io/en/latest/users.html). It is regularly tested with TypeScript, Python, and C. ## Documentation ```{toctree} :maxdepth: 2 API documentation designs/index.md rustification/index.md misc/index.md ``` ## Useful links * [Main libipuz repository](https://gitlab.gnome.org/jrb/libipuz) * [Issue tracker](https://gitlab.gnome.org/jrb/libipuz/-/issues) * [Release NEWS](https://gitlab.gnome.org/jrb/libipuz/-/blob/master/NEWS.md) * [Release tarballs](https://gitlab.gnome.org/jrb/libipuz/-/releases) See http://ipuz.org/ for more information about the file format. *ipuz is a trademark of Puzzazz, Inc., used with permission*