# 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. 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*