2018-03-07 17:35:20 +01:00
|
|
|
![alt text][logo]
|
2015-01-19 14:43:59 +01:00
|
|
|
|
Dev/devel 1.12.0 (#3585)
* fix(PollSet): #3248 #3249
* bump version to 1.11.0
* updated changelog|
* #3299: NetSSL: Allow per-Context InvalidCertificateHandler
* #3022: Process::isRunning(PID pid) causes handle leak on Windows
* #3022: fix for WinCE
* upgrade bundled pdjson to latest master
* update build configs - add support for Apple Silicon
* #2906, #2904: Support environments without hardware floating point
* #3130: fix error handling: report original error before close()
* #3107: remove unused variable
* #3219: SMTPClientSession: invalid SMTP command if empty recipients list in MailMessage
* Poco::trim*() code cleanup - use ptrdiff_t instead of int; additional test cases
* #3182 Poco::Process:launch on MacOS BigSur: limit maximum number of file descriptors to close before exec() to 100000
* #3278: Fixing no hardware floating point support - Part II
* #3090: Do not initialize value with undefined behavior
* #3163: Correct Var::parse null value
* #3196: std::forward for Poco::Optional ctor with rvalue
* #3068: Documented ENABLE_JWT option
* #3041: PostgreSQL and TEXT column type
* #3099: Fixed Postgres extraction into Dynamic::Var
* #3138: Add support of arch riscv32
* #2825: riscv: Enable double operations when using double float abi
* #3166: Fix PostgresSQL BLOB extractor
* #3237: An error in the documentation for Poco/JSON/Parser.h
* #3193: ServerApplication::registerService() unquoted path security vulnerability
* #3266: Order of Util::Application::uninitialize() is not in reverse as documented
* #3215: XML parser returns item from different element in a array
* #3282: Update constant in setContentType documentation
* #3089: HTTPSessionFactory does not support HTTPClientSession::ProxyConfig
* #2418: SecureServerSocket doesn't work with IpV6
* fix warnings
* #3019: ObjectPool wait on borrow condition fix
* #3224: Remove SSL23 support from Poco/Crypto
* #3191: Fixing a bug in the NetSSL_Win module (Host name verification failed error)
* disallow SSLv3
* #3269: Poco::Net::Context initialization with empty certificateFile
* #3307: Poco::Crypto::X509Certificate: obtain certificate fingerprint
* #3260: Memory leak in EVPPKey::loadKey used with files & wrong password
* #3157: fix(openssl): add missing dependency to OpenSSL components
* #3066: CMake warning about MYSQL casing
* #3135: Poco::Data::SQLite::Utility::fileToMemory unsuccessful if journal exists
* #3217: CMake: warning message with -DPOCO_STATIC confusing
* #3274: Fix localtime_r for VxWorks 6.9 and later
* #2746, #3169: Fix race condition on TCPServerDispatcher stop
* #3092: add more detailed error description when LoadLibrary fails|
* #3074: Fix sessions may not return back to the pool
* #3309: optimize parsing from stream (no copying of entire JSON to memory); limit maximum depth to avoid stack overflow with malicious documents (fuzzing - #3285); code cleanup
* JSON Parser performance improvements
* #3310: Upgrade bundled SQLite to 3.35.5
* fix UB/bad cast in TCPServerTest.cpp
* add comment regarding potential UB in AnyTest::testCastToReference()
* support sanitizers in build configs
* bump version
* fix 'catching polymorphic type by value' warnings
* fix 'catching polymorphic type by value' warnings
* fix 'catching polymorphic type by value' warnings
* remove failing Android build; add sanitizer builds
* update postgres version
* fix warning
* fix warning
* add GitHub workflow
* fix ci.yml
* fix ci.yml
* additional ci builds
* fix ci.yml for macos and windows
* fix(double-conversion): Upgrade bundled double-conversion #3313
* ci fixes
* #3314: NetSSL_OpenSSL: any.pem certificate error: ca md too weak
* testReuseSession: remove bad checks for session reuse
* investigate failing test
* investigate failing test
* investigate failing test
* investigate failing test
* ci
* remove travis and appveyor
* ci, readme
* ci fixes
* fix ci
* fix ci
* fix ci
* fix memory leak when ignoring test error/failure
* fix ci
* don't define UNREACHABLE as poco_bugcheck as it triggers 'control reaches end of non-void function' warning
* add Linux cross build, build Data libs on macos
* fix ci
* add MySQL include/lib search paths for Homebrew
* ci fixes
* ci fixes
* ci fixes
* ci fixes
* fix indluce paths for brew mysql
* #3317: Data::MySQL MySQL headers and library search paths
* fix ARM-Linux build config
* fix MySQL.make
* update FindMySQL.cmake
* fix(SocketReactor): fix dataCollection test
* chore: remove troubleshooting help leftovers
* #3302: MSVC: Poco hides warnings (C4996) for the C++14 attribute [[deprecated]]
* fix potential crash in testAsyncNotify: don't delete event object while async notification is still in progress
* fix(PollSetTest): change connect to blocking
* added ActiveRecord library and compiler
* added dependencies file
* update copyright dates
* ActiveRecord: project files and fixes for MSVC
* ci: enable ActiveRecord on Windows
* fix(PollSetTest): remove poll timing check (fails on msvc ci)
* fix ActiveRecord CMake build and configuration
* feat(build): add gen directory (for generated sources) and macchina lib link dirs (if needed)
* #3318: Data: Support Poco::UUID for data binding
* ODBC tests for UUID, updated ActiveRecord projects
* ActiveRecord user guide
* update ActiveRecord documentation
* documentation fixes
* #3321: manually merge ODBC text encoding support
* CppParser: merge changes from internal repository
* updated Makefile
* AbstractObserver::accepts() - add optional name parameter
* fix SharedPtr::makeSharedArray() [merge from devel]
* remove blank line
* #2895, #2935: support OCSP stapling
* style
* clang support (merge from devel)
* #3322: remove useless struct
* link libmariadb instead of libmysql if headers indicate MariaDB
* fix nullptr passed to memcmp/memcpy reported by ubsan
* fix nullptr passed to memcmp/memcpy reported by ubsan
* fix PageCompiler cross-compile; fix Content-Security-Policy header
* remove Data release notes page
* style, remove unused var
* update docs
* improve BLOB handling, clean-up code
* fix(ICMPv4Packet): [asan] Undefined behavior in ICMPv4PacketImpl.cpp #3326
* fix(NumericString): Bug in NumericString with decSep != '.' #3159
* fix(HostEntry): DNS HostEntry returns multiple entries #3303
* fix(PollSet): #3248 #3249
* fix(NetworkInterface): Unterminated string possible in NetworkInterfaceImpl::setPhyParams() #3301
* style/whitespace
* fix warnings
* add version resources to executables
* style
* whitespace
* update changelog
* cpproj: also copy testsuite/include if it's there
* branch off 1.11.1
* #3335: XML error when build 1.11.0
* #3353: add POCO_NO_FORK_EXEC CMake option
* #3381: DNS::hostByAddress not thread-safe
* #3400: fix std::localtime not thread safe
* #3221: Crash reported on Windows in X509Certificate verification
* #3344: [bug] MacOS bundle destination path is not set
* #3360: Add POCO_PGSQL_{INCLUDE,LIB} variables
* #3363: Fixed compilation error with MongoDB::Connection and Util::Application
* #3377: Correct Poco::Path::configHome() and dataHome() documentation for Windows
* #2823: error: implicit conversion from 'int' to 'float' changes value from 2147483647 to 2147483648
* #3425: Fixed suspend/resumeEvents pair in DirectoryWatcher
* #2966: SocketReactor loads one core of CPU up to 100%
* #3330: Poco::Data::ODBC::ODBCStatementImpl causes crash
* use OpenSSL 1.1.1 on macOS
* add missing include search path
* upgrade bundled PCRE to 8.45
* upgrade bundled SQLite to 3.36.0
* updated changelog
* fix brew OpenSSL version
* branch off poco-1.11.2
* #3506: Upgrade bundled expat to 2.4.4
* manually merge #3448, part 1 (Crypto)
* manually merge #3448, part 1 (NetSSL)
* #3515: NetSSL_OpenSSL Testsuite: testInterop() and testProxy() fail due to changed certificate
* #3448: fix version check
* #3465: NetSSL_Win: bad error handling when decodeMessage() fails
* #3458: encryptString() crash on redhat/centos 8 with FIPS enabled using md5 default digest
* #3505: JSON::PrintHandler.value(bool) prints incorrect value
* #3527: Upgrade bundled expat to 2.4.5
* #3470: bug in JSON ParseHandler.cpp (RFC 7159 should be valid)
* #3507: Reference counting for bound configuration in Util::Option is broken
* #3518: Expat version check in #defines incorrect
* #3338: NamedMutex does not work on Linux distributions where fs.protected_regular=1
* CI: don't build PageCompiler in ARM cross build
* detect ARM64 on Windows
* updated README.md
* ProGen: support generation of VS 2022 project files
* ci: add windows 2022
* fix library name
* remove unused CppUnit headers
* added VS2022 project files
* #3530: Upgrade bundled expat to 2.4.6
* #3538: Upgrade bundled expat to 2.4.7
* Add back NIOS2 double conversion detection to fix compile errors
The commit
https://github.com/pocoproject/poco/commit/558324f672d824300498060aff63356bc6bb8097
removed the nios2 support, which was originally added in
https://github.com/pocoproject/poco/commit/e7b91e8125d6910b53f94de5be4bb53f38dc77c1
This commit add it back.
Signed-off-by: Julien Olivain <ju.o@free.fr>
* #3466: DefinePlatformSpecific.cmake: handle RelWithDebInfo and MinSizeRel configurations
* #3524: remove XML and Util dependencies in Zip/SevenZip
* #3483: Adds Windows 11 and Server 2022 to Environment::osDisplayName()
* #3495: Array::operator[] should not throw
* #3268: Poco redis command set have a bug when you want to set nx ex or expireTime
* #3509: fix dst and utcOffset handling for Dublin time zone
* #2882: another attempt at fixing it that should also work on other platforms
* remove unused method in Timezone_WIN32.cpp
* use tm_gmtoff on Linux
* Basic support for OpenSSL 3.0.0 (#3448)
* updated README.md
* Create close-inactive-issues.yml
* check return codes of EVP_CIPHER_CTX_new and EVP_CipherInit
Especially with OpenSSL 3, it is possible that EVP_CipherInit may fail even when
passed a non-null cipher[1]. Without the checking, it will finally get to a
segfault.
[1] https://github.com/openssl/openssl/issues/16864
* Automatically load default and legacy providers with OpenSSL 3
Without the legacy provider [1], some ciphers are not available. For example,
the 'des-ecb' one used by test sutie is missed and the test will fail.
[1] OSSL_PROVIDER-LEGACY(7ossl)
* Make p12 ca order the same as pem
OpenSSL < 3 returns p12 ca order in reversed order. This is fixed
in OpenSSL 3. We work around it with old OpenSSL.
See:
https://github.com/openssl/openssl/issues/16421
https://github.com/openssl/openssl/pull/12641
https://github.com/jeroen/openssl/commit/f5eb85eb0fd432406a24abda6511c449eaee6162
* Implement SSL abort handling on OpenSSL 3
On an unexpected EOF, versions before OpenSSL 3.0 returned SSL_ERROR_SYSCALL,
nothing was added to the error stack, and errno was 0. Since OpenSSL 3.0 the
returned error is SSL_ERROR_SSL with a meaningful error on the error stack.[1]
[1] SSL_GET_ERROR(3ossl)
Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
Co-authored-by: Robin Lee <cheeselee@fedoraproject.org>
Co-authored-by: Aleksandar Fabijanic <aleks-f@users.noreply.github.com>
* fix(Socket): shutdown fixes from pull #3448
* #3500: Sandbox all iFrames in PocoDoc
* #3549; replace assert with assertTrue
* #3553: Upgrade bundled zlib to 1.2.12
* #3525: Bad management of file in case of OpenSSLException in X509Certificate::readPEM and X509Certificate::writePEM
* disable OpenSSL deprecation warnings
* chore: cleanup
* fix(X509Certificate): add missing string format
* #3559: Poco::Data::PostgreSQL - DateTime extraction truncates fractional seconds
* feat(EVP): 3.0 support
- add EVPCipher
- additional EVPPKey constructors
- tests
- fix and improve openssl-related exceptions
Transition towards 3.0 support;
deprecating direct EC and RSA interface portions.
* fix(openssl): pre 3.0 compile
* feat(Envelope): Add envelope to crypto #3561
* fix(Envelope): mac/clang compile
* fix(Any): #3297 #3514
* #3562: fixed OpenSSL setup/shutdown
* fix exception text
* #3563: Remove support for OpenSSL < 1.0
* ci jobs for OpenSSL 1.1 and 3
* updated CHANGELOG
* updated .vscode
* Refactor/any soo (#3564)
* refactor(Any): SOO
- encapsulate data holders
- add missing gets and ops
- eliminate g++ warnings with enable_if's
- default enable SOO
* refactor(Placeholder): encapsulate SOO memory management and fix leaks; cf. #3297 #3514
* fix(Placeholder): asan errors and add tests
cf. #3297 #3514
* fix(SSLManager): Race condition in SSLManager #3558
* remove unused include
* updated copyright date
* PocoDoc: fix iframe sandboxing
* fix(SHA2Engine): cannot use HMACEngine with SHA2Engine #3421
* refactor(Placeholder): ifdef POCO_NO_SOO only in Placeholder and remove it anywhere else (#3566)
* refactor(Placeholder): more SOO consolidation and optimization
* fix(FPEnvironment): Visual Studio Warning C4244 #3543
* fix(Extractor): move extraction decoding to AbstractExtractor #3396
* Netssl/openssl3 (#3575)
* feat(Context): DH init openssl3 port (1/2 hardcoded params)
* create poco-1.11.3 branch, bump version
* update copyright date
* #3567: check legacy provider existence for legacy exception #3567
* fix(Placeholder): comparison for zero value
* feat(Context): DH init openssl3 port (2/2 params from file)
* test(HTTPSClientSession): try/catch to understand CI failure
* chore(cmake): copy the DH parameters file
* fix(OpenSSLInitializer): unload provider on uninitialize
* chore(HTTPSClientSessionTest): remove try/catch
* fix(OpenSSLInitializer): fix provider unloading
* feat(CppUnit): make tests exceptions more descriptive
* chore(CppUnit): a more descriptive name for callback
Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
* fix(Foundation): update VS 2019 platform version
* chore(Data): update VS project files (add Transcoder #3396)
* fix(Data): Poco::Data::ODBC-dbEncoding property not used for insert/update #3396
* fix(Data): add transcoder to Makefile #3396
* fix(JWT): remove duplicate test functions after merge
Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
Co-authored-by: Julien Olivain <ju.o@free.fr>
Co-authored-by: Robin Lee <robinlee.sysu@gmail.com>
Co-authored-by: Robin Lee <cheeselee@fedoraproject.org>
2022-05-04 20:57:08 +02:00
|
|
|
[![poco-ci](https://github.com/pocoproject/poco/actions/workflows/ci.yml/badge.svg?branch=poco-1.11.2)](https://github.com/pocoproject/poco/actions/workflows/ci.yml)
|
2022-05-26 16:03:48 +02:00
|
|
|
|
2018-03-07 17:35:20 +01:00
|
|
|
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/370/badge)](https://bestpractices.coreinfrastructure.org/projects/370)
|
2015-01-19 14:43:59 +01:00
|
|
|
|
2016-03-12 16:42:25 +01:00
|
|
|
|
2020-01-27 09:07:10 +01:00
|
|
|
### POCO (Portable Components) C++ Libraries are:
|
2018-03-08 10:55:58 +01:00
|
|
|
|
2020-01-27 09:07:10 +01:00
|
|
|
- A collection of C++ class libraries, conceptually similar to the Java Class Library or the .NET Framework.
|
2013-06-05 06:16:05 +02:00
|
|
|
- Focused on solutions to frequently-encountered practical problems.
|
2020-01-27 09:07:10 +01:00
|
|
|
- Focused on "internet-age" network-centric applications.
|
2013-06-05 06:16:05 +02:00
|
|
|
- Written in efficient, modern, 100% ANSI/ISO Standard C++.
|
|
|
|
- Based on and complementing the C++ Standard Library/STL.
|
2017-11-10 14:14:19 +01:00
|
|
|
- Highly portable and available on many different platforms, from embedded to server.
|
2016-03-12 16:42:25 +01:00
|
|
|
- Open Source, licensed under the [Boost Software License](https://spdx.org/licenses/BSL-1.0).
|
2012-10-24 22:15:56 +02:00
|
|
|
|
2018-03-07 17:35:20 +01:00
|
|
|
![alt text][overview]
|
|
|
|
|
2017-11-10 14:14:19 +01:00
|
|
|
To start using POCO, see the [Guided Tour](https://pocoproject.org/docs/00100-GuidedTour.html)
|
|
|
|
and [Getting Started](https://pocoproject.org/docs/00200-GettingStarted.html) documents.
|
2014-10-14 03:26:02 +02:00
|
|
|
|
2020-01-27 09:07:10 +01:00
|
|
|
|
|
|
|
## Quick Start (with CMake)
|
|
|
|
|
|
|
|
### Prerequisites
|
|
|
|
|
|
|
|
- CMake 3.5 or newer
|
|
|
|
- A C++14 compiler (Visual C++ 2015, GCC 5.0, Clang 3.4, or newer)
|
2020-01-27 09:25:45 +01:00
|
|
|
- OpenSSL headers and libraries (optional, but recommended)
|
|
|
|
- MySQL, PostgreSQL and ODBC client libraries (optional)
|
2020-01-27 09:07:10 +01:00
|
|
|
|
2020-01-27 09:25:45 +01:00
|
|
|
Most Unix/Linux systems already have OpenSSL preinstalled. If your system
|
|
|
|
does not have OpenSSL, please get it from <http://www.openssl.org> or
|
|
|
|
another source. You do not have to build OpenSSL yourself - a binary
|
|
|
|
distribution is fine. For example, via Debian APT:
|
|
|
|
|
|
|
|
```
|
|
|
|
$ apt-get install openssl libssl-dev
|
|
|
|
```
|
|
|
|
|
|
|
|
On macOS, the easiest way to install OpenSSL is via [Homebrew](https://brew.sh):
|
|
|
|
|
|
|
|
```
|
|
|
|
$ brew install openssl
|
|
|
|
```
|
|
|
|
|
|
|
|
The easiest way to install OpenSSL on Windows is to use a binary
|
|
|
|
(prebuild) release, for example the one from Shining Light
|
|
|
|
Productions that comes with a
|
|
|
|
[Windows installer](https://www.slproweb.com/products/Win32OpenSSL.html).
|
|
|
|
|
|
|
|
On Windows, POCO can also use the native Windows TLS APIs (SChannel).
|
|
|
|
|
|
|
|
### Installing All Dependencies (Linux and macOS)
|
|
|
|
|
|
|
|
All dependencies can be installed with the following commands:
|
|
|
|
|
|
|
|
#### Debian Linux (including Ubuntu and Raspbian)
|
|
|
|
|
|
|
|
```
|
|
|
|
$ sudo apt-get -y update && sudo apt-get -y install git g++ make cmake libssl-dev
|
|
|
|
```
|
|
|
|
|
|
|
|
#### RedHat Linux
|
|
|
|
|
|
|
|
```
|
|
|
|
$ sudo yum install -y git gcc-c++ make cmake3 openssl-devel
|
|
|
|
```
|
|
|
|
|
|
|
|
#### macOS (with Homebrew)
|
|
|
|
|
|
|
|
```
|
|
|
|
$ brew install cmake openssl
|
|
|
|
```
|
|
|
|
|
|
|
|
### Building with CMake (Linux, macOS, Windows)
|
|
|
|
|
|
|
|
[CMake](https://cmake.org) (version 3.5 or newer) is the recommended build system for
|
|
|
|
building the POCO C++ Libraries.
|
2020-01-27 09:07:10 +01:00
|
|
|
|
|
|
|
```
|
|
|
|
$ git clone -b master https://github.com/pocoproject/poco.git
|
|
|
|
$ cd poco
|
|
|
|
$ mkdir cmake-build
|
|
|
|
$ cd cmake-build
|
2020-01-27 09:25:45 +01:00
|
|
|
$ cmake ..
|
|
|
|
$ cmake --build . --config Release
|
|
|
|
```
|
|
|
|
|
|
|
|
On macOS, it's necessary to tell CMake where to find the OpenSSL headers
|
|
|
|
and libraries by setting the `OPENSSL_ROOT_DIR` CMake variable.
|
|
|
|
For example, if OpenSSL has been installed with Homebrew,
|
|
|
|
the `cmake` invocation becomes:
|
|
|
|
|
|
|
|
```
|
|
|
|
$ cmake .. -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl
|
|
|
|
```
|
|
|
|
|
|
|
|
Other common ways of building with CMake (e.g., `cmake-gui`) will also work.
|
|
|
|
|
|
|
|
There are also a number of project-specific CMake variables that can be changed.
|
|
|
|
|
|
|
|
|
|
|
|
#### Cross-Compiling
|
|
|
|
|
|
|
|
With a proper CMake toolchain file (specified via the `CMAKE_TOOLCHAIN_FILE` CMake variable),
|
|
|
|
the POCO C++ Libraries can be cross-compiled for embedded Linux systems:
|
|
|
|
|
2020-01-27 09:07:10 +01:00
|
|
|
```
|
2020-01-27 09:25:45 +01:00
|
|
|
$ cmake .. -DCMAKE_TOOLCHAIN_FILE=/path/to/mytoolchain.cmake -DCMAKE_INSTALL_PREFIX=/path/to/target
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
#### Installing
|
2020-01-27 09:07:10 +01:00
|
|
|
|
2020-01-27 09:25:45 +01:00
|
|
|
The POCO C++ Libraries headers and libraries can be optionally be installed by building the `install` target.
|
2020-01-27 09:07:10 +01:00
|
|
|
|
|
|
|
```
|
|
|
|
$ sudo cmake --build . --target install
|
|
|
|
```
|
|
|
|
|
2020-01-27 09:25:45 +01:00
|
|
|
The default install location is `/usr/local/` on Linux and macOS and
|
|
|
|
`C:\Program Files (x64)\` on Windows and can be overridden by setting
|
|
|
|
the `CMAKE_INSTALL_PREFIX` CMake variable.
|
|
|
|
|
|
|
|
|
|
|
|
### Building Without CMake
|
2020-01-27 09:07:10 +01:00
|
|
|
|
|
|
|
If you do not want to or cannot use CMake, POCO can also be built with Visual Studio
|
2020-01-27 09:25:45 +01:00
|
|
|
(project and solution files included) or GNU Make (Linux, macOS and other supported Unix platforms).
|
2020-01-27 09:07:10 +01:00
|
|
|
|
|
|
|
Please refer to the [documentation](https://pocoproject.org/docs) for more information.
|
|
|
|
|
2020-01-27 09:25:45 +01:00
|
|
|
|
|
|
|
### Getting POCO via a Package Manager
|
|
|
|
|
2020-01-27 09:07:10 +01:00
|
|
|
POCO can also be obtained via different [package managers](https://pocoproject.org/download.html).
|
|
|
|
|
2020-01-27 09:25:45 +01:00
|
|
|
|
2020-01-27 09:07:10 +01:00
|
|
|
## Community and Contributing
|
|
|
|
|
|
|
|
POCO has an active user and contributing community, please visit our [website](https://pocoproject.org) and [blog](https://pocoproject.org/blog).
|
2016-09-13 07:42:41 +02:00
|
|
|
Answers to POCO-related questions can also be found on [Stack Overflow](https://stackoverflow.com/questions/tagged/poco-libraries).
|
|
|
|
|
|
|
|
Please see [CONTRIBUTING](CONTRIBUTING.md) for submitting contributions, bugs reports, feature requests or security issues.
|
2013-06-05 06:16:05 +02:00
|
|
|
|
2020-01-27 09:07:10 +01:00
|
|
|
### POCO vs. Boost
|
|
|
|
|
2014-10-14 03:26:52 +02:00
|
|
|
In regards to Boost, in spite of some functional overlapping,
|
|
|
|
POCO is best thought of as a Boost complement (rather than replacement).
|
2016-03-12 16:42:25 +01:00
|
|
|
Side-by-side use of Boost and POCO is a very common occurrence.
|
2013-06-05 06:16:05 +02:00
|
|
|
|
2018-03-08 10:55:58 +01:00
|
|
|
[overview]: doc/images/overview.png "Poco Overview"
|
|
|
|
[logo]: doc/images/logo.png "Poco Logo"
|