| POCO C++ Libraries | |
|---|---|
| Developers | POCO Project (Günter Obiltschnig, et al.) |
| Release | February 21, 2005 |
| Stable release | 1.15.4
/ 2026-09-22[±] |
| Written in | C++ |
| Operating system | Cross-platform: Desktop-server: Windows, Linux, macOS, Solaris, HP-UX, AIX Embedded-mobile: Windows Embedded Compact, embedded Linux, Android, iOS, QNX, VxWorks |
| Platform | ARM, IA-32, x86-64 |
| Available in | English |
| Type | library or framework |
| License | Boost Software 1.0 |
| Website | pocoproject |
| Repository | POCO Repository |
| This article is part of a series on the C++ programming language |
The Portable Components (POCO) C++ Libraries are computer software, a set of class libraries for developing computer network-centric, portable applications in the programming language C++, and can supplement the C++ Standard Library. The libraries cover functions such as threads, thread synchronizing, file system access, streams, shared libraries and class loading, Internet sockets, and network communications protocols (HTTP, FTP, SMTP, etc.), and include an HTTP server, and an XML parser with SAX2 and DOM interfaces and SQL database access. The modular and efficient design and implementation makes the libraries well suited for embedded system development.
The libraries are free and open-source software distributed under the Boost Software License 1.0.
POCO is a set of C++ libraries providing users with library support similar to that found in other development environments, like the Java Class Library, .NET Framework, or Apple's Cocoa. POCO is centered on network-centric application domains and developed with modern ANSI/ISO Standard C++ and C++ Standard Library facilities and techniques with emphasis on powerful functionality, ease of use, and consistency. Governed primarily by code quality, consistent style and unit testing, POCO is highly portable, and already ported to a variety of different platforms.
It describes itself as not a replacement to Boost, but rather can be used complementarily with Boost and the C++ standard library, stating "In regards to Boost, in spite of some functional overlapping, POCO is best thought of as a Boost complement (rather than replacement). Side-by-side use of Boost and POCO is a very common occurrence."
One design goal of many targeted decisions are based around POCO C++ providing an easy-to-use component library that works out of the box. As of 2017[update], the libraries are available in two package formats: the basic and the complete editions. The complete edition covers NetSSL, Crypto, Zip, and Data abilities, among others. The basic edition does not, and thus eliminates dependence on external facilities such as OpenSSL, ODBC, and MySQL dependencies. Its namespace and module are both named Poco.
Being open source enables and encourages development of further library functions. Design and development of existing and upcoming library support is driven by the pragmatic needs of the user base. Library additions occur in a sandbox development environment and are reviewed and integrated into the main library releases as approved by the core development team with input from contributors.
POCO also provides a proprietary "POCOPRO C++ Frameworks" library offering web services frameworks, open service platform with web application servers, authentication with OAuth and one-time passwords, and Internet-of-Things edge computing with datapoint APIs and JavaScript engines, and remote access (HTTP, Secure Shell (SSH), Secure Copy Protocol (SCP), SSH File Transfer Protocol (SFTP)) and remote desktop through macchina.io. It is available for free usage, but requires a licence file (poco.license) placed in the home directory, which can be obtained from the POCO Project website (once a source code licence is purchased, the licence file is no longer necessary).
As of 2025[update], POCO C++ Libraries are split into five core libraries with optional add-on libraries available with each release. It is designed to resemble the Java standard library or .NET standard library. Its design and hierarchy has received praise from some, who consider it well-designed.
The component libraries cover the following areas that can be found in the complete edition:
WinRegistryKey) and the Windows Service Control Manager (WinService)POCO has undergone a long update history since its inception in 2004 and release in 2005.
HashMap and HashSet support,Users include: