Back to Poco

Third-Party Dependencies

dependencies/README.md

latest4.1 KB
Original Source

Third-Party Dependencies

The Poco C++ Libraries include third-party code in two forms:

  1. Bundled dependencies in this dependencies/ directory — self-contained libraries that can be updated independently
  2. Embedded code in the main source tree — algorithms and small components integrated directly into Poco source files

When POCO_UNBUNDLED is enabled (CMake) or set in the environment (GNU Make), marked libraries are replaced with system-installed versions via find_package() or -l flags.

Bundled Dependencies

LibraryVersionLicenseUsed byUnbundleableSource
zlib1.3.2ZlibFoundation (compression/decompression streams)Yeshttps://github.com/madler/zlib
pcre210.47BSD-3-ClauseFoundation (regular expressions)Yeshttps://github.com/PCRE2Project/pcre2
utf8proc2.11.3MITFoundation (Unicode normalization)Yeshttps://github.com/JuliaStrings/utf8proc
expat2.7.4MITXML (SAX/DOM parser)Yeshttps://github.com/libexpat/libexpat
sqlite33.51.2Public DomainData/SQLite (embedded database)Yeshttps://www.sqlite.org
png1.6.55libpng LicensePDF (PNG image support)Yeshttps://github.com/pnggroup/libpng
v8_double_conversion3.4.0BSD-3-ClauseFoundation (float-to-string conversion)Nohttps://github.com/google/double-conversion
pdjsonPublic DomainJSON (streaming parser)Nohttps://github.com/skeeto/pdjson
tessilMITFoundation (insertion-order-preserving hash containers)Nohttps://github.com/Tessil/ordered-map
hpdf (libharu)2.4.5Zlib-likePDF (PDF document generation)Nohttps://github.com/libharu/libharu
7zip (LZMA SDK)26.00Public DomainSevenZip (7z archive support)Nohttps://github.com/ip7z/7zip
cpptrace1.0.4MITFoundation (stack trace support, optional)Nohttps://github.com/jeremy-rifkin/cpptrace
quill11.0.2MITFoundation (high-performance async logging, optional)Nohttps://github.com/odygrd/quill
wepoll1.5.8BSD-2-ClauseNet (epoll emulation, Windows only)Nohttps://github.com/piscisaureus/wepoll

Embedded Third-Party Code

The following third-party code is embedded directly in Poco source files. These are algorithm implementations or minimal compatibility headers that are tightly integrated with Poco classes and not practical to extract as separate libraries.

ComponentFilesLicenseCopyrightNotes
Hyrise SQL ParserData/SQLParser/MITMarkus Dreseler, Hasso Plattner InstituteSQL query parsing (diverged fork)
CppUnit test frameworkCppUnit/CppUnit-old (permissive)Michael FeathersPoco's unit test framework
BSD random number generatorFoundation/src/Random.cpp, Foundation/include/Poco/Random.hBSD-4-Clause1983-1993 The Regents of the University of CaliforniaFreeBSD libc random() algorithm
RSA MD4 algorithmFoundation/src/MD4Engine.cpp, Foundation/include/Poco/MD4Engine.hRSA-MD1991-1992 RSA Data Security, Inc.RFC 1320 reference implementation
RSA MD5 algorithmFoundation/src/MD5Engine.cpp, Foundation/include/Poco/MD5Engine.hRSA-MD1991-1992 RSA Data Security, Inc.RFC 1321 reference implementation
SHA-1 algorithmFoundation/src/SHA1Engine.cppPublic DomainPeter C. Gutmann (1992), modified by Carl EllisonBased on public domain implementation
SHA-2 algorithmFoundation/src/SHA2Engine.cppApache-2.0mbed TLS project (ARM)FIPS 180-4 (SHA-224/256/384/512)
CMake C++17 detectioncmake/CXX1x.cmakeMITNathan Osman (2013)C++17 compiler feature detection module
PostgreSQL large object headerData/PostgreSQL/include/libpq/libpq-fs.hPostgreSQL LicensePostgreSQL Global Development GroupMinimal header for large object definitions