Skip to main content

Dependencies

Wuwe separates C++ build dependencies from runtime sidecars and external services. This matters because the release contains a static SDK: consuming applications must still make the enabled public link dependencies available to CMake.

Official release profiles

CapabilityWindows x64Linux x64macOS 14+ arm64
Default HTTP backendcpr/libcurlcpr/libcurlcpr/libcurl
TLSSchannelOpenSSLOpenSSL
SQLiteRequiredRequiredRequired
Document parsingTika and bundled Temurin 21Tika and bundled Temurin 21Tika and bundled Temurin 21

The configure step uses vcpkg.json and its pinned builtin-baseline to restore missing manifest dependencies into the selected build tree. It does not install them globally.

Inventory

DependencyUsed forDelivery
CMake and a C++20 compilerBuilding Wuwe and consumersBuild environment
cpr/libcurlDefault HTTP transportFetched at the revision pinned in src/CMakeLists.txt for official builds; source consumers may provide an existing cpr::cpr target
cpp-httplibAlternate HTTP client and MCP HTTP listenerChecked-in header
OpenSSLLinux/macOS TLS and the optional Windows OpenSSL profilevcpkg or another compatible development package
Python 3Controlled Python execution and the macOS restricted-process backendHost installation; configure python_interpreter explicitly when it is not on PATH
SQLite3Durable memory and knowledge storagevcpkg in official profiles; compatible package for SDK consumers
nlohmann/jsonJSON representation and codecsChecked-in headers
Apache Tika ServerPDF and Office parsingDefault bundled sidecar; may be omitted or externally managed
Temurin 21 JRERuns the bundled Tika serverDefault platform bundle; may be omitted when Java is supplied by the host
QdrantOptional vector serviceDeployed separately and accessed over HTTP

TLS selection

Set WUWE_TLS_BACKEND at configure time:

ValueBehavior
nativeUses the platform/libcurl-native backend; Windows selects Schannel
opensslRequires OpenSSL and links it explicitly
autoUses OpenSSL when found, otherwise the native backend

The official presets use deterministic choices: native on Windows and openssl on Linux/macOS. The Windows OpenSSL variant is available as windows-vcpkg-openssl.

cmake --preset windows-vcpkg-openssl
cmake --build --preset windows-vcpkg-openssl-release

WUWE_ENABLE_HTTPLIB_SSL controls HTTPS in the cpp-httplib backend. It is effective only when the selected build has OpenSSL.

SQLite selection

Set WUWE_SQLITE_MODE at configure time:

ValueBehavior
onRequires SQLite; configuration fails when it is unavailable
autoEnables SQLite when found
offBuilds without SQLite-backed capabilities

The official presets use on. A SQLite-enabled installed package calls find_dependency for the provider selected during the Wuwe build.

SQLite provides durable local storage, not a vector database. sqlite_knowledge_index stores embeddings as JSON and computes similarity with a linear scan in C++. Use Qdrant or an application-specific remote index for large semantic collections or service-scale concurrency.

Installed-package behavior

find_package(wuwe 1 CONFIG REQUIRED)
target_link_libraries(my_app PRIVATE wuwe::wuwe)

The exported configuration exposes the resolved HTTP, TLS, OpenSSL, cpp-httplib HTTPS, and SQLite capabilities. Missing required link dependencies fail during find_package(wuwe) instead of appearing later as unresolved targets.

The bundled curl build disables Brotli and zstd to keep the static link interface reproducible. gzip and deflate remain available through curl's zlib support.

Dependency-specific CPR and curl options are scoped to the dependency fetch. Wuwe no longer forces global BUILD_SHARED_LIBS, TLS, or compression cache values in a parent CMake project.