Release 1.7.2 of the POCO C++ Libraries is available. This release upgrades the bundled Expat XML parser to 2.1.1, which fixes a CVE. Furthermore, the bundled SQLite library has been updated to release 3.11.1 and a bug in Poco::Data::RecordSet has been fixed. Please see the CHANGELOG for the details. Upgrading is recommended.
March 20, 2016
March 14, 2016
Release 1.7.1 of the POCO C++ Libraries is available.
This is a bugfix release and contains three fixes for issues found in 1.7.0 and earlier releases, and a minor NetSSL improvement.
Please see the CHANGELOG for t Upgrading is recommended if you are affected by the fixed issues.xed issues.
March 7, 2016
Release 1.7.0 of the POCO C++ Libraries is available. This is a maintenance release and contains fixes for issues found in 1.6.1 and earlier releases. A couple of new minor features are in there as well. Please refer to the CHANGELOG for the details. Upgrading is recommended.
August 3, 2015
Release 1.6.1 of the POCO C++ Libraries is available. This is a maintenance release and contains fixes for issues found in 1.6.0. We’ve also added support for Visual Studio 2015. Please refer to the CHANGELOG for the details.
July 4, 2015
June 11, 2015
I’ll be at the Sierra Wireless Innovation Summit, a full-day IoT Innovation conference in Paris on June 17. Meet me there to see a demo of macchina.io, my new really cool POCO-based platform for building IoT gateways and devices.
The event features technical and business tracks, plenty of real-life use cases, an exciting showroom with 15+ live IoT demos, and of course ample networking opportunities. Register now to join me there!
March 2, 2015
The POCO C++ Libraries are now available via biicode, in the following versions:
- fenix/poco (develop) -> changing continuously
- fenix/poco (v1.6.0)
- fenix/poco (v1.5.4)
- fenix/poco (v1.4.7p1)
biicode is a file based dependency manager, which has many advantages:
- Save time reusing from any POCO library (Foundation, Net, NetSSL_OpenSSL, etc.) such times as you need and avoid to configure and build out the libraries first. biicode’ll only retrieve the necessary files to build your project.
- POCO depends on external libraries like zlib, PCRE (Perl Compatible Regular Expressions), HPDF, 7-Zip, OpenSSL and SQLite that they’re uploaded on biicode and maintained by our users.
- It’s been tested on biicode in Windows with Visual Studio 10 and Visual Studio 12, Linux with GCC and Apple with CLang.
I recommend you to use Visual Studio to configure your project because with MinGW you could get some errors.
POCO External Dependencies
These libraries have many external and third party dependencies to build some of them, e.g., Foundation depends on PCRE and ZLib. Without biicode PCRE and ZLib source files must be present in POCO project, but with biicode it’s not needed. The following table shows all the dependencies for every version uploaded which biicode’ll find if you use all the modules in a project:
So, you’ll not have to worry about to install or build them, biicode does all the effort for you 😉 . These are the depending blocks in biicode:
- PCRE(v8.36): fenix/pcre
- PCRE(v7.8): fenix/pcre(v7.8)
- HPDF: fenix/hpdf
- zlib: zlib/zlib
- 7-Zip: fenix/7z
- OpenSSL: lasote/openSSL(v1.0.2)
- SQLite: fenix/sqlite
Using POCO C++ Libraries In Your Project
1. Create a new project and an empty block:
$ bii init poco_sample
$ cd poco_sample
$ bii new myuser/myblock
2. Add your sample code (orignal code from Net/samples/dict.cpp) into ./blocks/myuser/myblock/sample.cpp:
// $Id: //poco/1.4/Net/samples/dict/src/dict.cpp#1 $
// This sample demonstrates the StreamSocket and SocketStream classes.
// Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH.
// and Contributors.
// SPDX-License-Identifier: BSL-1.0
3. Choose which uploaded POCO version you want to depend on, configure it through your ./blocks/myuser/myblock/biicode.conf file. Create it and copy the following:
4. Finally, you’d only have to retrieve your POCO dependencies and build your sample.cpp. For it, use this command:
Note: for Windows users, to configure your project with Visual Studio, e.g., 10 version, execute:
$ bii cpp:configure -G "Visual Studio 10"
$ bii cpp:build
So, biicode’ll download all the dependencies from release version 1.6.0 and compile the project. Now, you can run the binary created in your ./bin/ folder.
Use The Original #include's
Change all the includes from the previous sample.cpp code to:
Now, tell biicode how to find this dependencies, so, modify again the biicode.conf and add the following:
Warning: take care with Poco/*.h: fenix/poco/Foundation/include because it should always be at the end of [includes] section for being a really wide search pattern.
Finally, clean the metadata and build again the project:
$ bii clean
$ bii cpp:build
Creating A Project With NetSSL_OpenSSL or NetSSL_Win
Making a project using these libraries is a special use case of original includes. Why? Take a look at the following example:
/* headers in Net library */
/* headers in NetSSL_OpenSSL and NetSSL_Win libraries */
Like you see, NetSSL_OpenSSL and NetSSL_Win have the same relative inlcude headers, so, the only way to resolve successfully your dependencies is writing the full path for them.
/* headers in Net library */
/* headers in NetSSL_OpenSSL library */
The biicode.conf would be like the previous one.
Build All POCO Samples
Try to build all the available samples Poco brings us with each release. Create a project, open any examples/poco block and build it, e.g., examples from 1.4.7p1 version:
$ bii init samples_1_4_7p1
$ bii open "examples/poco(v1.4.7p1)"
$ bii cpp:build
So, that’s all! POCO C++ Libraries are amazing and I strongly recommend you to start using them for your network projects.
February 13, 2015
Günter Obiltschnig will be at Embedded World February 24 to 25. We don’t have a booth, but Günter would be happy to meet for lunch, coffee or a drink. Please get in touch if you’d like to schedule a meeting.
December 22, 2014
Release 1.6.0 is the culmination of the work done on GitHub over the last two years, including five development releases. It includes major new features from new contributors, like the JSON and MongoDB libraries, much improved Data library, CMake support, as well as numerous other new features and fixes. A big Thank You to everyone who contributed to this release.
November 26, 2014
Release 1.4.7p1 fixes a few issues in 1.4.7 and earlier releases. Most important, the Visual C++ project files for Visual C++ 2010 and later have optimization enabled in release builds. Previous builds had optimization disabled due to a bug in Visual Studio when upgrading 2008 project files with custom optimization settings.
There’s a new feature as well – HTTPClientSession now supports a global proxy setting, which will be used by all instances of HTTP(S)ClientSession, including HTTP(S)StreamOpener.
For more information about the release, please see the CHANGELOG.