Eclipse Zenoh:零开销发布/订阅、存储/查询和计算。
Zenoh(发音/zeno/ )统一了运动数据、静止数据和计算。它将传统的发布/订阅与地理分布式存储、查询和计算仔细地融合在一起,同时保留了远远超出任何主流堆栈的时间和空间效率水平。
查看网站 zenoh.io 和路线图以获取更多详细信息。
Zenoh C++ API 是 zenoh-c 和 zenoh-pico 库的仅限标头的 C++ 绑定。
C++ 绑定仍在积极开发中,因此 Zenoh 团队将非常感谢您在各种平台、系统架构等上测试它们并报告您可能遇到的任何问题的任何帮助。这将有助于大大提高其成熟度和稳健性。
构建该库的唯一硬性要求是符合 C++17 的编译器。使用该库需要安装 zenoh-c 或 zenoh-pico。
⚠️ 警告⚠️ :Zenoh 及其生态系统正在积极开发中。当您从 git 构建时,请确保您还从 git 构建您计划使用的任何其他 Zenoh 存储库(例如绑定、插件、后端等)。 git 中的某些更改可能与最新打包的 Zenoh 版本(例如 deb、docker、pip)不兼容。我们特别努力维护 Zenoh 项目中各个 git 存储库之间的兼容性。
要安装 zenoh-cpp,请执行以下步骤:
克隆源。
git 克隆 https://github.com/eclipse-zenoh/zenoh-cpp.git
构建并安装。
默认情况下,您应该安装 zenoh-c。如果您想为 zenoh-pico 后端或两者安装(或不指定任何后端),请相应地将ZENOHCXX_ZENOHC
或ZENOHCXX_ZENOHPICO
Cmake 变量设置为ON
或OFF
。请注意,使用库和/或构建测试和示例至少需要一个后端。
使用选项CMAKE_INSTALL_PREFIX
指定安装位置。如果没有此参数,安装将执行到默认系统位置/usr/local
这需要 root 权限。
mkdir 构建 && cd 构建 cmake .. -DCMAKE_INSTALL_PREFIX=~/.local # 仅为 zenoh-c 后端配置 cmake .. -DZENOHCXX_ZENOHC=OFF -DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # 仅为 zenoh-pico 后端配置 cmake .. -DZENOHCXX_ZENOHC= OFF -DZENOHCXX_ZENOHPICO=OFF -DCMAKE_INSTALL_PREFIX=~/.local # 不配置后端scmake .. -DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # 配置后端scmake --install 。
默认情况下,您应该安装 zenoh-c。如果您想为 zenoh-pico 后端或两者构建和运行测试,请将ZENOHCXX_ZENOHC
或ZENOHCXX_ZENOHPICO
Cmake 变量相应地设置为ON
或OFF
。
要构建测试运行:
mkdir 构建 && cd 构建 cmake .. -DCMAKE_INSTALL_PREFIX=~/.local # 仅为 zenoh-c 后端构建测试 cmake .. -DZENOHCXX_ZENOHC=OFF -DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # 仅为 zenoh-pico 后端构建测试 .. - DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # 为两个后端构建测试 scmake --build 。 --目标测试 测试
请注意, cmake ../zenoh-cpp
的输出显示了在何处找到了 zenoh-c 和/或 zenoh-pico 依赖项。
示例分为两个子目录。子目录universal
包含可使用 zenoh-c 和 zenoh-pico 后端构建的 zenoh-cpp 示例。 zenohc
子目录包含具有 zenoh-c 特定功能的示例。
默认情况下,您应该安装 zenoh-c。如果您想为 zenoh-pico 后端或两者构建示例,请将ZENOHCXX_ZENOHC
或ZENOHCXX_ZENOHPICO
Cmake 变量相应地设置为ON
或OFF
。
要构建示例,请运行:
cmake .. -DCMAKE_INSTALL_PREFIX=~/.local # 仅为 zenoh-c 后端构建示例 cmake .. -DZENOHCXX_ZENOHC=OFF -DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # 仅为 zenoh-pico 后端构建示例 .. - DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # 为两个后端构建示例 scmake --build 。 --目标示例
示例放置在build/examples/zenohc
和build/examples/zenohpico
目录中。
将当前目录更改为您想要的变体(构建目录中的examples/zenohc
或examples/zenohpico
)。
请参阅命令行参数的示例源(键表达式、值、路由器地址)。
zenohc
示例可以独立工作,但对于zenohpico
示例,需要工作的 zenoh 路由器。因此,要运行zenohpico
示例,请下载 zenoh 项目并运行路由器(应安装 Rust):
git 克隆 https://github.com/eclipse-zenoh/zenohcd zenoh 货物运行
./z_sub
./z_pub
z_pub
应该接收z_sub
发送的消息。
./z_可查询
./z_get
z_get
应该从z_queryable
接收数据。
./z_sub_thr_cpp
./z_pub_thr_cpp 1024
延迟 30-40 秒后, z_sub_thr
将开始显示吞吐量测量结果。
以下是将 zenoh-cpp 包含到 CMake 项目中的步骤。另请参阅示例/简单目录以获取 CMakeLists.txt 的简短示例。
在依赖 zenoh-cpp 本身之前,将 zenoh-c 或 zenoh-pico 包含到您的 CMake 项目中。这很重要,因为您需要的库目标( zenohcxx::zenohpico
、 zenohcxx::zenohc::lib
)仅在其后端库目标( zenohpico::lib
和/或zenohc::lib
已定义)时才定义
使用 find_package CMake 函数包含 zenoh-cpp:
find_package(zenohc) #if using zenoh-c backend find_package(zenohpico) #if using zenoh-pico backend find_package(zenohcxx)
将 zenoh-cpp 的依赖项添加到您的项目中:
target_link_libraries(yourproject PUBLIC zenohcxx::zenohc) #if using zenoh-c backend target_link_libraries(yourproject PUBLIC zenohcxx::zenohpico) #if using zenoh-pico backend
包含 zenoh.hxx 标头。所有 zenoh 功能都可以在命名空间zenoh
下使用:
#include “zenoh.hxx”使用命名空间 zenoh;
该文档位于 zenoh-cpp.readthedocs.io 上。如何在本地构建文档的说明位于 docs/README.md。