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