
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 DZENOHCXX_ZENOHC= OFF -DZENOHCXX_ZENOHPICO=OFF -DCMAKE_INSTALL_PREFIX=~/.local # 不配置後端scmake .. -DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # insta設定。
預設情況下,您應該安裝 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 # zenNOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # zenNOHPICO=ON zenKE_INSTALL_PREFIX=~/.local # zenNOHPICO=ON zenKE_INSTALL_PREFIX=~/.local # zenNOHPICO=ON zenKE_INSTALL_PREFIX=~ . - 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。