pocoproject.org Open in urlscan Pro
54.93.62.90  Public Scan

Submitted URL: http://pocoproject.org/
Effective URL: https://pocoproject.org/
Submission Tags: tranco_l324
Submission: On April 19 via api from DE — Scanned from DE

Form analysis 0 forms found in the DOM

Text Content

We use cookies

We use cookies and other tracking technologies to improve your browsing
experience on our website, to show you personalized content and targeted ads, to
analyze our website traffic, and to understand where our visitors are coming
from.

I agreeI declineChange my preferences
 * GitHub
 * Twitter
 * Documentation
 * Contact Us


SIMPLIFY C++ DEVELOPMENT


THE POCO C++ LIBRARIES ARE POWERFUL CROSS-PLATFORM C++ LIBRARIES FOR BUILDING
NETWORK- AND INTERNET-BASED APPLICATIONS THAT RUN ON DESKTOP, SERVER, MOBILE,
IOT, AND EMBEDDED SYSTEMS.

Latest Release: 1.13.3 [Changelog]

 * Get Started!

The POCO C++ Libraries have been trusted by C++ developers worldwide for 18
years to build challenging and mission-critical applications in a wide variety
of industries.



Whether building automation systems, industrial automation, IoT platforms, air
traffic management systems, enterprise IT application and infrastructure
management, security and network analytics, automotive infotainment and
telematics, financial or healthcare, C++ developers have deployed the POCO C++
Libraries in millions of devices.


POCO IS USED FOR


EMBEDDED DEVICES

Create software for connected embedded devices running Linux, Windows Embedded
or QNX.


MOBILE APPS

Create cross-platform backends in C++ for iOS and Android applications and
combine it with a native or HTML5-based user interface.


INTERNET OF THINGS

Create software for IoT devices that talk to cloud backends over HTTP REST APIs.
See macchina.io for an IoT platform built with POCO.


SERVER APPLICATIONS

Build application servers in C++ that talk to SQL databases, MongoDB or Redis.


CLOUD & MICROSERVICES

Build high-performance microservices with REST APIs for data analytics or
machine learning in C++.


DESKTOP APPS

Build desktop applications that talk to REST APIs or SQL databases.


MAIN FEATURES


CROSS-PLATFORM

Powerful platform abstractions let you build cross platform code that runs on
all common desktop, server, mobile and embedded platforms.


PERFORMANCE

Written in efficient modern C++, POCO does not waste precious CPU cycles and
memory.


EASY TO USE

Comprehensive and consistent APIs combined with an easily accessible code base
make C++ developers more productive.


MODULAR & SCALABLE

Don't pay for what you don't use. Use on embedded Linux devices with as little
as of 8-16 MB of RAM, or on multi-core, multi-gigabyte servers.


MULTITHREADING

Advanced multithreading abstractions simplify the development of multithreaded
programs.


LOGGING

Versatile, low overhead and extensible logging framework for all your logging
needs.


JSON & XML

Multiple APIs (streaming and document-oriented) for parsing and creating JSON
and XML.


DATABASE ACCESS

Access SQL databases like SQLite, MySQL/MariaDB, PostgreSQL and SQL Server (via
ODBC). Or NoSQL databases like MongoDB and Redis.


NETWORK & INTERNET

From basic sockets to HTTP/HTTPS client and server, POCO covers all your network
programming needs.


ENCRYPTION & SECURITY

Easy-to-use wrappers for OpenSSL make it easy to integrate encryption and
SSL/TLS into your application.

 * See all features


FROM OUR BLOG


POCO C++ LIBRARIES RELEASE 1.13.3 AVAILABLE

This is another maintenance release, fixing a number of issues. One important
new feature added in this release is support for the vcpkg package manager in
the Visual Studio 2019/2022 project files. This should greatly simplify building
all of the libraries with external dependencies (OpenSSL, MariaDB client,
PostgreSQL client) with Visual Studio. Please see the […]

 * Read More


POCO C++ LIBRARIES RELEASE 1.13.2 AVAILABLE

This is a maintenance release fixing some build issues with SQLParser, including
missing files in the release archives and missing build dependencies for the GNU
Make-based build system (CHANGELOG).

 * Read More


EXAMPLE CODE

SIMPLE WEB SERVER

The following code example implements a simple multithreaded web server serving
a single HTML page. It uses the Foundation, Net and Util libraries and shows the
following features:

 * Cross-Platform - the code will work on all supported platforms, including
   Linux, macOS and Windows.
 * Logging
 * HTTP framework in Net library.
 * Server application support in Util library including configuration file
   handling.

#include "Poco/Net/HTTPServer.h"
#include "Poco/Net/HTTPRequestHandler.h"
#include "Poco/Net/HTTPRequestHandlerFactory.h"
#include "Poco/Net/HTTPServerRequest.h"
#include "Poco/Net/HTTPServerResponse.h"
#include "Poco/Net/ServerSocket.h"
#include "Poco/Util/ServerApplication.h"
#include <iostream>

using namespace Poco;
using namespace Poco::Net;
using namespace Poco::Util;

class HelloRequestHandler: public HTTPRequestHandler
{
    void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response)
    {
        Application& app = Application::instance();
        app.logger().information("Request from %s", request.clientAddress().toString());

        response.setChunkedTransferEncoding(true);
        response.setContentType("text/html");

        response.send()
            << "<html>"
            << "<head><title>Hello</title></head>"
            << "<body><h1>Hello from the POCO Web Server</h1></body>"
            << "</html>";
    }
};

class HelloRequestHandlerFactory: public HTTPRequestHandlerFactory
{
    HTTPRequestHandler* createRequestHandler(const HTTPServerRequest&)
    {
        return new HelloRequestHandler;
    }
};

class WebServerApp: public ServerApplication
{
    void initialize(Application& self)
    {
        loadConfiguration();
        ServerApplication::initialize(self);
    }

    int main(const std::vector<std::string>&)
    {
        UInt16 port = static_cast<UInt16>(config().getUInt("port", 8080));

        HTTPServer srv(new HelloRequestHandlerFactory, port);
        srv.start();
        logger().information("HTTP Server started on port %hu.", port);
        waitForTerminationRequest();
        logger().information("Stopping HTTP Server...");
        srv.stop();

        return Application::EXIT_OK;
    }
};

POCO_SERVER_MAIN(WebServerApp)

 * Get Started
 * Follow @pocoproject

 * GitHub
 * Twitter
 * Documentation
 * Contact Us

Imprint | Privacy Policy | Preferences & Opt-Out

© 2006-2024 Applied Informatics Software Engineering GmbH.


 * About
   * About
   * License
   * Community
   * Project Governance
   * Related Projects & Products
   * Notable Users
   * Features
 * Get POCO
 * POCOPRO
   * POCOPRO Remoting for C++
   * POCOPRO Open Service Platform
   *  
   * Licensing & Pricing
   *  
   * Download Free Trial
 * Docs
 * Blog

 * About
 * License
 * Community
 * Project Governance
 * Related Projects & Products
 * Notable Users
 * Features

 * POCOPRO Remoting for C++
 * POCOPRO Open Service Platform
 *  
 * Licensing & Pricing
 *  
 * Download Free Trial