Repolode
pocoproject

pocoproject/poco

Cross-platform C++ class libraries for building network-centric applications, covering HTTP, networking, databases, XML/JSON and logging.

Stars
9,489
Forks
2,325
Open issues
154
Last commit
yesterday

What is it?

POCO (Portable Components) C++ Libraries are a collection of C++ class libraries that address frequently encountered practical problems, with a focus on internet-age, network-centric applications. Conceptually they resemble the Java Class Library or the .NET Framework, but are built on modern standard C++ and complement the STL rather than replacing it.

The libraries target a wide range of platforms, from embedded devices to servers, and are released under the Boost Software License. The build is driven by CMake, with optional dependencies such as OpenSSL, MySQL, PostgreSQL and ODBC enabling secure connections and database access. Components can be built selectively for size-constrained deployments.

The repository's topics cover HTTP client and server, networking, SQL and database access, MongoDB and Redis clients, JSON, XML, configuration and logging, so developers can often use POCO alongside Boost in the same project.

Key features

  • 01Provides HTTP client and server components for network applications.
  • 02Includes database access for SQL databases, plus MongoDB and Redis clients.
  • 03Offers JSON and XML parsing, configuration and logging utilities.
  • 04Supports OpenSSL and native Windows SChannel TLS.
  • 05Builds with CMake and can be installed via vcpkg or Conan.
  • 06Allows selective component builds to reduce binary size.

Use cases

  • Building HTTP services or clients in C++ on desktop, server or embedded Linux.
  • Accessing MySQL, PostgreSQL or ODBC databases from a C++ application.
  • Adding a C++ logging and configuration layer to an existing networked product.
  • Running the same networking code across Windows, Linux and macOS.

Quick start

  1. 1

    Install dependencies on Debian/Ubuntu

    sudo apt-get -y update && sudo apt-get -y install git g++ cmake libssl-dev libmysqlclient-dev libpq-dev
  2. 2

    Clone the repository

    git clone -b main https://github.com/pocoproject/poco.git
  3. 3

    Configure the build with CMake

    cd poco && mkdir cmake-build && cd cmake-build && cmake ..
  4. 4

    Build the libraries

    cmake --build . --config Release

Things to know

  • Requires a C++20-capable compiler and CMake 3.26 or newer.
  • Optional database and TLS features need extra client libraries such as OpenSSL, MySQL, or PostgreSQL.

In collections

Topics

FAQ

What is poco?
Cross-platform C++ class libraries for building network-centric applications, covering HTTP, networking, databases, XML/JSON and logging. POCO (Portable Components) C++ Libraries are a collection of C++ class libraries that address frequently encountered practical problems, with a focus on internet-age, network-centric applications. Conceptually they resemble the Java Class Library or the .NET Framework, but are built on modern standard C++ and complement the STL rather than replacing it.
Is poco free to use? What license does it have?
poco is open source under the Other license. Check the license terms before using it in commercial products.
Is poco still maintained?
Actively maintained. The last commit to poco was on Oct 23, 2026.
What can I use poco for?
Building HTTP services or clients in C++ on desktop, server or embedded Linux. Accessing MySQL, PostgreSQL or ODBC databases from a C++ application. Adding a C++ logging and configuration layer to an existing networked product. Running the same networking code across Windows, Linux and macOS.
How do I install poco?
Install dependencies on Debian/Ubuntu: sudo apt-get -y update && sudo apt-get -y install git g++ cmake libssl-dev libmysqlclient-dev libpq-dev Clone the repository: git clone -b main https://github.com/pocoproject/poco.git Configure the build with CMake: cd poco && mkdir cmake-build && cd cmake-build && cmake .. Build the libraries: cmake --build . --config Release
Where can I get poco?
The source code and installation instructions are on GitHub: https://github.com/pocoproject/poco

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects