* feature(MongoDB): Remove obsolete legacy wire protocol.
* enh(MongoDB): Use more C++17 features, comments about thread safety.
* enh(MongoDB) Performance improvements (std::set --> std::vector, improved few internal functions).
* enh(MongoDB) Performance improvements (Document member index for fast search, optimised serialisation in OpMsgMessage).
* enh(MongoDB) Performance improvements (move semantics for Document::addElement, improved toString(), use noexcept where appropriate).
* enh(MongoDB): Introduce enums for binary subtypes and more user friendly printout of UUIDs.
* enh(MongoDB) Performance improvements (move semantics in Element, improved implementation of toString()).
* enh(MongoDB) Performance improvements (ObjectId and RegularExpression.).
* enh(MongoDB): add createIndex that uses new wire protocol.
* feat(AsyncNotificationCenter): Auto-configure number of workers #5060
add/removeObserver utility functions
move AsyncNotificationCenter tests into a separate file
tests
* chore: update copyrighht
* fix(dependencies, CMake): Add missing link libraries in dependencies.
* chore(CI): Enable PDF in linux-gcc-cmake-visibility-hidden.
* enh(CMake): do not link zlib to PDF when building a shared library
Before the handshake is performed, SecureSocketImpl::stateClientConnected
overrides the peer hostname with its IP address, making it impossible to send
SNI during the handshake in SecureSocketImpl::stateClientHandshakeStart.
This behavior essentially breaks SNI and prevents the library from being used
with load balancers that rely on SNI to determine the destination host.
Everywhere else, the peer hostname is replaced by the IP address only when the
peer hostname is empty. That makes total sense; however, it seems like this
check was forgotten in SecureSocketImpl::stateClientConnected.
* reactor http server
* fix
* test logic
* add reactor server session , use buf to cache socket buffer
* add reactor example
* fix: nodelay, otherwise ack will be after 50 ms
* tcp reactor server support multi listener
* fix: tcp reactor connection lifetime about socket
* feat: add tcp reactor params
* format
* check http reqeust complete, dynamic size buffer in reactor
* remove try catch
* remove debug logger
* remove debug logger
* fix: should not pop in destructor
* delete useless
* remove cankeepalive temporarily, optimize check complete req
* coding style
* coding style
* reactor server session unit test
* http reactor time server add delay param
* optimize switch case, and pop completed msg in destructor
* refactor reactor server session
* fix: check completed request when headers are in lower case like oha, add unit tests
* fix auto_ptr compile error, remove logger and coding style
* compile and tests fix, add reactor obj in makefile and vcxproj
* compile and tests fix in win, add reactor sample vcxproj
* compile and tests fix in macos when visibility is hidden
* Add support for modules
* Use "" for inclusion
* Fix missing includes on Poco.Data module
* Add PDF and SevenZip modules, and match modules to build macros
* Add CI test
* Add missing link libraries in CMake
* Add remaining libraries DNSSD, CppParser and CppUnit. Changed some static declarations to inline to export
* We also need to forward the ENABLE_NETSSL_* macros
* Update CMakeLists files
* Add samples as requested, with DateTime and URI test for example
* Fix POCO_MODULES_INSTALL macro
* chore(CMake): Combine install macro for libraries and C++ modules into one macro.
* Apply testsuite changes and address include directories concerns
* Restore accidentally deleted build files
* Mistakenly added a file generated by CMake, removed.
---------
Co-authored-by: Matej Kenda <matejken@gmail.com>
* Find certificate from Windows store using its thumbprint
* Address review comments
---------
Co-authored-by: Hussein Ismail <hussein.ismail@m-files.com>
* chore(PCRE): properly detect library type on newer macOS
* chore(ZLIB): move source files to own zlib directory and update CMake files.
* chore(PCRE): move source files to own pcre2 directory and update CMake files.
* chore(UTF8PROC): move source files to own utf8proc directory and update CMake files.
* chore(ZLIB): remove header files
* chore(PDJSON): move source files to own pdjson directory and update CMake files.
* chore(SQLite3): move source files to own sqlite3 directory and update CMake files.
* chore(UNBUNDLED): Correct includes.
* chore(expat): move source files to own expat directory and update CMake files.
* chore(wepoll): move source files to own wepoll directory and update CMake files.
* chore(7zip): move source files to own 7zip directory and update CMake files.
* chore(CMake): fix compile and link flags for dependent static libraries
* chore(CMake): set PCRE2_STATIC when building PCRE2.
* chore(SQLite3): Set SQLITE_THREADSAFE for unbundled build, add warnings.
* chore(CMake): Modifications to build and link properly static target libraries (using OBJECT library type and link using BUILD_LOCAL_INTERFACE)
* chore(CMake): fix order of includes in main CMakeLists.txt.
* chore(CI): Build mysql tests with cmake.
* chore(CI): Build mongodb, redis, sqlite no parser tests with cmake.
* chore(CI): Build odbc tests with cmake.
* chore(CI): Build more ations with cmake, other fixes.
* chore(CI): Fixes for macOS
* chore(CMake): extract hpdf and png files to own directories in dependencies
* fix(CMake): include dependencies after all module dependencies are resolved.
* fix(CMake): Improve dependency handling of dependencies to compile them only when necessary.
* fix(CMake): PDF: move t4.h to proper directory, modify include.
* fix(CMake): Fixes to link properly on all platforms.
* fix(CMAKE): Wrong ENABLE for SQLITE
* enh(PDF): Remove dependencies on hpdf headers from Poco::PDF interface and make usage of hpdf only internal.
* enh(CI): Convert more jobs to use cmake.
* enh(CI): Convert macOS sanitizer jobs to use cmake.
* enh(mkrelease): Copy dependencies when creating release package.
* eng(CMake): Add missing POCO_SO option to enable/disable small object optimization.
* enh(CI): Run linux sanitizer with cmake, various fixes and improvements.
* fix(CMake): bundled build: ZLIB::ZLIB is already linked with Foundation, no need to link again to Poco::Zip
* fix(CI): vptr undefined sanitizer causes foundation tests to fail when linking, disable it
* chore(tests): Minor code improvements.
* fix(AsyncNotificationCenter): fix a data race with member _listsEmpty by making it atomic.
* eng(CI): Add a few more time sensitive tests to cppignore.lnx
* chore(Thread): Code updates.
* eng(CI): Add a few more time sensitive tests to cppignore.lnx
* fix(AsyncNotificationCenter): must join threads to avoid data race in dtor.
* chore(CI): Pass TSAN_OPTIONS to jobs where necessary
* chore(CI): run rests without sudo, compile with parallelism
* chore(CI): Use POCO_MINIMAL_BUILD to simplify CMake configure lines.
* chore(CI): Add 32-bit Windows VS build
* chore(CMake): Printout cmake generator platform.
* chore(CMake): linux-gcc-make-armv7l -> linux-gcc-cmake-armv7l
* chore(ci): windows-2025-msvc-cmake-32bit -> windows-2025-msvc-cmake-Win32
* chore(CI): Convert all remaining jobs to CMake.
* chore(make): Prevent building with make.
* chore(CodeQL): exclude all external code from CodeQL checks.
* chore(macOS): Set min support version to 13.3 to properly support C++20 standard.
Add reasons to some of the deprecations. There are several others without reasons, but I couldn't find a clear answer from the code, so I've left those blank.
* New SQLite Only Unbundled Option
A new option to use an unbundled (external) SQLite but all other dependencies internal.
* Match Other Option Styles
Force the POCO_SQLITE_UNBUNDLED option to ON when POCO_UNBUNDLED is on. Switching to this style to match the rest of the Poco cmake options.