Last month we were very pleased to see POCO included in Incredibuilds top 13 C++ libraries for 2021. The POCO C++ Libraries (POCO stands for POrtable COmponents) are open source C++ class libraries for building connected applications for desktop, server, mobile, IoT, and embedded systems. POCO has grown steadily in popularity since it was founded by Günter Obiltschnig in 2004. These days it is being used across a wide range of industries, and is embedded in millions of devices all around the world. Looking at job postings for C++ developers mentioning POCO, we see a large number of applications in a diverse set of environments, including automotive infotainment and telematics, devices for industrial and building automation, business and enterprise applications, financial trading, medical, defense and more.
What can you do with POCO?
The POCO C++ Libraries have been built for IoT (or connected devices, as we called it back then) and can help you to solve the biggest problems commonly faced in building connected systems. Here are some of the areas where POCO will dramatically reduce your development time by providing proven and tested solutions.
- Encryption & Security
Wrappers for OpenSSL make it easy to integrate encryption and SSL/TLS into your application.
- Network & Internet
POCO covers a wide range of network programming topics from basic sockets to HTTP/HTTPS client and server side.
- JSON & XML
Parsing and creating JSON and XML is easy with multiple APIs (streaming and document-oriented) to work with.
- Database Access
POCO is ready to help you to access a range of SQL databases like SQLite, MySQL/MariaDB, PostgreSQL and SQL Server (via ODBC). Or NoSQL databases like MongoDB and Redis.
- Platform abstraction and Utilities
Support for multithreading and processes, filesystem access, configuration file handling (multiple formats), command-line parsing, logging, file compression (zlib, Zip), text encodings, regular expressions, and much more.
In general POCO is designed to make development faster and less complicated with an easily accessible code base and a comprehensive and consistent set of APIs. It is written in efficient modern C++ to maximize performance by minimizing CPU cycles and memory usage with powerful platform abstractions allowing you to build cross platform code that runs on all common desktop, server, mobile and embedded platforms.
Of course, at Applied Informatics, we also use the POCO C++ Libraries as the foundation of all our commercial products, specifically macchina.io IoT Edge Device SDK and Remote Manager. The former runs on embedded Linux devices, typically ARM-based, with as little as 64 MB of RAM. The latter runs on cloud infrastructure, in load-balanced setups capable of handling ten thousands to hundred thousands or millions of simultaneous device connections.
The Complete IoT Device Software Solution
macchina.io Remote Manager provides secure remote access to industrial controllers, IoT gateways and other network devices. Devices can be accessed and controlled via web, secure shell (SSH) and remote desktop/screen sharing protocols like VNC and RDP.
In one of our recent blog posts we discussed the various technology pathways available for a development team as they plan their IoT platform build. Open source is one of the pathways that we explored and we highlighted some of the downsides, including the time and resources required for your initial build. Although open source gives you a head start, it is likely that you will need to make significant modifications to the code you start with to create the exact functionality that your IoT business model requires. On top of this overhead, the lack of guaranteed support creates an additional risk.
This is where the macchina.io solution can offer a reliable and cost effective solution to jump over most of the initial development stage and start your project with more of your basic IoT infrastructure in place, from edge device to the cloud.
Building an IoT Platform?
Our Guide to building an IoT platform presents an overview of how your project could be planned from the initial technology selection right through to detailed examples that include solutions to some of the biggest challenges.