跳到主要内容

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 x64
Default HTTP backendcpr/libcurlcpr/libcurl
TLSSchannelOpenSSL
SQLiteRequiredRequired
Document parsingBundled Tika and Temurin 21 JREBundled Tika and Temurin 21 JRE

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 and installed with the SDK metadata
cpp-httplibAlternate HTTP client and MCP HTTP listenerChecked-in header
OpenSSLLinux TLS and the optional Windows OpenSSL profilevcpkg or another compatible development package
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 parsingBundled runtime sidecar
Temurin 21 JRERuns the bundled Tika serverBundled per target platform
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. 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 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.