使用指南Thin SDK
C++ Thin SDK
pole-client-cpp 的 CMake 包名、构建安装与 Sidecar Session / TargetService 用法。
C++ Thin SDK(仓库 pole-client-cpp)经 UDS 建立 Sidecar Session,接收 HTTP / gRPC / Dubbo / Thrift listener 快照,并生成 TargetService 元信息。
官方包
| 项 | 值 |
|---|---|
| 仓库 | github.com/lattice-hub/pole-client-cpp |
| CMake package | PoleClientCpp |
| 链接目标 | PoleClient::pole-client-cpp |
| 依赖 | 官方 gRPC(通过 CMAKE_PREFIX_PATH 提供);Specification 以 Git submodule 固定 |
当前以源码构建安装为主:
git clone --recursive https://github.com/lattice-hub/pole-client-cpp.git
cmake -S . -B build -G Ninja -DCMAKE_PREFIX_PATH=/path/to/grpc
cmake --build build
ctest --test-dir build --output-on-failure
cmake --install build消费方:
find_package(PoleClientCpp CONFIG REQUIRED)
target_link_libraries(your_target PRIVATE PoleClient::pole-client-cpp)最小用法
默认 UDS:/var/run/pole/sidecar/bootstrap.sock。可用 SidecarSessionOptions.socket_path 或 POLE_SIDECAR_SOCKET 覆盖。
#include <pole/client/sidecar_session.h>
#include <pole/client/target_service.h>
auto session = pole::client::SidecarSession::Connect();
const auto grpc_address = session->ListenerAddress(pole::client::Protocol::kGrpc);
const pole::client::TargetService target("default", "orders");
const auto metadata = target.EncodeMetadata();
// 将业务客户端指向 grpc_address,并注入 metadata。会话断开后快照立即失效;重连并收到完整首帧后恢复。SDK 不硬编码业务 listener 端口。
元信息
latticehub-target-namespace
latticehub-target-serviceTargetService v1 仅含 namespace 与 service;值经 canonical UTF-8 %HH 编码。
边界
- 框架无关核心,不含业务框架 adapter
- 端到端兼容仍演进中,见 Thin SDK 总览