1.3 Dependencies

The core MuPDF library makes use of various software libraries.

Freetype
Renderer for various font types.
Harfbuzz
OpenType Font shaper built upon Freetype, required for e-pub files.
JBig2dec
Image decoder for JBIG2 images.
JpegLib
Image decoder for JPEG images.
MuJS
Javascript engine used for PDF files.
OpenJPEG
Image decoder for JPEG2000 images.
ZLib
Compression library.
LCMS2
ICC Color Management engine.

In addition, the MuPDF library can optionally make use of:

OpenSSL
Encryption library, required for Digital Signatures support.

The MuPDF viewer for Linux and Windows can optionally make use of:

Curl
An http fetcher used for displaying files as they download.

These libraries are packaged with MuPDF, either in the distribution archives or as git submodules. From time to time, these libraries may include bug fixes that have not been accepted back into the upstream repositories. We therefore strongly recommend using the versions of the libraries that we ship, rather than any other versions you may find on your system.

The exception to this is LCMS2. The version of LCMS2 included with MuPDF has API changes to make it incompatible with vanilla LCMS2. As such it is not merely a recommendation that you use the supplied version, but a requirement. The reasons for this incompatibility are discussed in the documentation with our version of the library.

Finally, the commercial version of MuPDF can optionally use different decoder libraries:

Luratech JBIG2
Image decoder for JBIG2 images.
Luratech JPEG2000
Image decoder for JPEG 2000 images.

These libraries are generally better both in terms of memory and CPU use, but are not available open source. As such they are made available to our customers as part of the commercial release. These commercial customers are then free to choose which library to use.