Skip to main content

Acknowledgements

Prince uses several open source libraries - for a complete list also showing the used version numbers, please run Prince with the following command-line option:

$ prince --credits

The etc/prince.cdx.json machine-readable SBOM file in the Prince resource directory contains many more details.

Open Source Libraries​

Mercury

Prince is written in the Mercury programming language and uses the Mercury core libraries and the Mercury Cairo bindings.

Boehm-Demers-Weiser Garbage Collector

The Boehm-Demers-Weiser Garbage Collector library is used by the Mercury runtime for garbage collection, and uses the libatomic_ops library for memory management.

mimalloc

Prince also uses the mimalloc library for memory management.

GNU libgomp

The GNU libgomp library is used by Prince for OpenMP support.

libxml2

The libxml2 library is used by Prince to load XML and HTML documents.

libcurl

The libcurl library is used by Prince to load resources from HTTP URLs.

OpenSSL and NSS

The OpenSSL and NSS libraries are used by Prince to load resources from secure HTTPS URLs.

Fontconfig

The Fontconfig library is used by Prince on Linux to scan for installed system fonts.

FreeType

The FreeType library is used by Prince to load and process TrueType font files.

CTAN hyphenation files

Prince uses the hyphenation pattern files from the CTAN archive.

libthai

The libthai library is used by Prince to handle word breaking in the Thai language.

libdatrie

The libdatrie library is used by Prince to load the Thai dictionary.

GIFLIB

The GIFLIB library is used by Prince to load GIF image files.

libavif and aom

The libavif and aom libraries are used by Prince to load AVIF image files.

libjpeg-turbo

The libjpeg-turbo library is used by Prince to load JPEG image files.

libpng

The libpng library is used by Prince to load PNG image files.

libtiff

The libtiff library is used by Prince to load TIFF image files.

libwebp

The libwebp library is used by Prince to load WebP image files.

Little CMS

Little CMS (lcms2) library is used by Prince for color management.

Cairo and Pixman

The Cairo and Pixman libraries are used by Prince for rasterization.

zlib

The zlib library is used by Prince to perform compression of PDF files.

Prince also uses the Rust standard library to load the following Rust crates:

  • aliasable
  • alloc-no-stdlib
  • alloc-stdlib
  • allsorts
  • bitflags
  • bitreader
  • brotli-decompressor
  • byteorder
  • cfg-if
  • const-cstr
  • core-foundation
  • core-foundation-sys
  • core-graphics
  • core-text
  • crc32fast
  • dlib
  • either
  • encoding_rs
  • flate2
  • fontconfig
  • foreign-types
  • foreign-types-shared
  • glyph-names
  • heck
  • itertools
  • lazy_static
  • libc
  • libloading
  • libz-sys
  • log
  • num-traits
  • once_cell
  • ouroboros
  • ouroboros_macro
  • pathfinder_geometry
  • pathfinder_simd
  • proc-macro-error
  • proc-macro-error-attr
  • proc-macro2
  • quote
  • rustc-hash
  • static_assertions
  • syn
  • tinyvec
  • tinyvec_macros
  • ucd-trie
  • unicode-bidi
  • unicode-canonical-combining-class
  • unicode-case-mapping
  • unicode-general-category
  • unicode-ident
  • unicode-joining-type
  • unicode-linebreak
  • winapi
  • winapi-x86_64-pc-windows-gnu
  • yeslogic-fontconfig-sys
  • yeslogic-unicode-script