Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Build Status


Simple Image Presentation Interface (SIPI) is a multithreaded, high-performance, IIIF compatible media server developed by the Data and Service Center for the Humanities at the University of Basel. It is designed to be used by archives, libraries, and other institutions that need to preserve high-quality images while making them available online.

SIPI implements the Image API 3.0 of the International Image Interoperability Framework (IIIF), and efficiently converts between image formats, preserving metadata contained in image files. In particular, if images are stored in JPEG 2000 format, Sipi can convert them on the fly to formats that are commonly used on the Internet. SIPI offers a flexible framework for specifying authentication and authorization logic in Lua scripts, and supports restricted access to images, either by reducing image dimensions or by adding watermarks. It can easily be integrated with Knora. In addition SIPI preserves most of the EXIF, IPTC and XMP metadata and can preserve or transform ICC color profiles.

In addition, a simple webserver is integrated. The server is able to serve most common file types. In addition Lua scripts and embedded Lua (i.e., Lua embedded into HTML pages using the tags <lua>…</lua> are supported.

SIPI can also be used from the command line to convert images to/from TIFF-, JPEG 2000, JPEG- and PNG- formats. For all these conversion, SIPI tries to preserve all embedded metadata such as

  • IPTC
  • EXIF
  • XMP
  • ICC color profiles. However, due to the limitations of some file formats, it cannot be guaranteed that all metadata and ICC profiles are preserved.
  • JPEG2000 (J2k) does not allow all types of ICC profiles profiles. Unsupported profile types will be added to the J2k header as comment and will be

SIPI is a free software, released under the GNU Affero General Public License. It is written in C++ and runs on Linux and macOS. Note: In order to compile SIPI, the user has to provide a licensed source of the kakadu software.

It is written in C++ and runs on Linux (including Debian, Ubuntu, and CentOS) and macOS.

Freely distributable binary releases are available daschswiss/sipi as docker image.


The documentation is online at

To build it locally, you will need MkDocs. In the root the source tree, type:

make docs-build

You will then find the manual under site/index.html.

Building from source

All should be run from inside the root of the repository.

Build and run inside Docker - recommended

$ make compile
$ make test
$ make run

Build under macOS - not recommended. You are on your own. We warned you ;-)

$ (mkdir -p ./build-mac && cd build-mac && cmake .. && make && ctest --verbose)


Releases are published on Dockerhub:

Contact Information

Lukas Rosenthaler <>