- A collection of C++ class libraries, conceptually similar to the Java Class Library or the .NET Framework.
- Focused on solutions to frequently-encountered practical problems.
- Focused on "internet-age" network-centric applications.
- Written in efficient, modern, 100% ANSI/ISO Standard C++.
- Based on and complementing the C++ Standard Library/STL.
- Highly portable and available on many different platforms, from embedded to server.
- Open Source, licensed under the Boost Software License.
To start using POCO, see the Guided Tour and Getting Started documents.
- CMake 3.26 or newer
- A C++20 compiler (Visual C++ 2022, GCC 10, Clang 10, Apple Clang 13, or newer). CMake selects C++20 when the compiler supports it and falls back to C++17 otherwise; some features are only available with C++20.
- OpenSSL 1.1.1 or newer headers and libraries (optional, but recommended)
- MySQL, PostgreSQL, ODBC, and Apache/APR client libraries (optional)
- C++20, CMake 3.28 or later, and Ninja (for C++ modules)
Most Unix/Linux systems already have OpenSSL preinstalled. If your system does not have OpenSSL, please get it from https://www.openssl.org or another source. You do not have to build OpenSSL yourself - a binary distribution is fine. For example, via Debian APT:
$ sudo apt-get install openssl libssl-dev
On macOS, the easiest way to install OpenSSL is via Homebrew:
$ brew install openssl
On Windows, the easiest way to install OpenSSL is via WinGet:
$ winget install --id -e ShiningLight.OpenSSL.Dev
One may use a binary (prebuilt) release, for example the one from Shining Light
Productions that comes with a
Windows installer.
OpenSSL can also be installed via the vcpkg package manager.
On Windows, POCO can also use the native Windows TLS APIs (SChannel).
All dependencies can be installed with the following commands:

