Eclipse Zenoh: オーバーヘッドゼロのパブリッシュ/サブスクライブ、ストア/クエリ、およびコンピューティング。
Zenoh ( /ゼノ/と発音) は、移動中のデータ、静止中のデータ、および計算を統合します。従来のパブリッシュ/サブスクライブと、地理的に分散されたストレージ、クエリ、計算を慎重に組み合わせながら、主流のスタックをはるかに上回るレベルの時間とスペースの効率を維持します。
詳細については、ウェブサイト zenoh.io とロードマップを確認してください。
Zenoh C++ API は、zenoh-c および zenoh-pico ライブラリのヘッダーのみの C++ バインディングです。
C++ バインディングはまだ活発に開発中であるため、Zenoh チームは、さまざまなプラットフォーム、システム アーキテクチャなどでバインディングをテストし、発生する可能性のある問題を報告する際にご協力をいただければ幸いです。これは、その成熟度と堅牢性を大幅に向上させるのに役立ちます。
ライブラリを構築するための唯一の必須要件は、C++17 準拠のコンパイラです。ライブラリを使用するには、zenoh-c または zenoh-pico のいずれかがインストールされている必要があります。
⚠️ 警告⚠️ : Zenoh とそのエコシステムは積極的に開発中です。 git からビルドする場合は、使用する予定の他の Zenoh リポジトリ (バインディング、プラグイン、バックエンドなど) も必ず git からビルドしてください。 git の一部の変更は、最新のパッケージ化された Zenoh リリース (deb、docker、pip など) と互換性がない場合があります。 Zenoh プロジェクト内のさまざまな Git リポジトリ間の互換性を維持することに特に力を入れています。
zenoh-cpp をインストールするには、次の手順を実行します。
ソースのクローンを作成します。
git clone https://github.com/eclipse-zenoh/zenoh-cpp.git
ビルドしてインストールします。
デフォルトでは、zenoh-c がインストールされていることが想定されます。 zenoh-pico バックエンドまたはその両方にインストールする場合 (またはバックエンドを指定しない場合)、それに応じてZENOHCXX_ZENOHC
またはZENOHCXX_ZENOHPICO
Cmake 変数をON
またはOFF
に設定してください。ライブラリを使用したり、テストやサンプルを構築したりするには、少なくとも 1 つのバックエンドが必要であることに注意してください。
インストール場所を指定するには、オプションCMAKE_INSTALL_PREFIX
を使用します。このパラメータを指定しない場合、インストールはデフォルトのシステムの場所/usr/local
に実行されますが、これには root 権限が必要です。
mkdir ビルド && cd ビルド cmake .. -DCMAKE_INSTALL_PREFIX=~/.local # zenoh-c backendcmake のみに設定します .. -DZENOHCXX_ZENOHC=OFF -DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # zenoh-pico backendcmake のみに設定します .. -DZENOHCXX_ZENOHC= OFF -DZENOHCXX_ZENOHPICO=OFF -DCMAKE_INSTALL_PREFIX=~/.local # どのバックエンドにも設定しない場合は cmake .. -DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # 両方のバックエンドに設定する場合は cmake --install 。
デフォルトでは、zenoh-c がインストールされていることが想定されます。 zenoh-pico バックエンドまたはその両方のテストを構築して実行する場合は、それに応じてZENOHCXX_ZENOHC
またはZENOHCXX_ZENOHPICO
Cmake 変数をON
またはOFF
に設定してください。
テストをビルドするには、以下を実行します。
mkdir ビルド && cd ビルド cmake .. -DCMAKE_INSTALL_PREFIX=~/.local # zenoh-c backendcmake のみのテストをビルドします .. -DZENOHCXX_ZENOHC=OFF -DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # zenoh-pico backendcmake のみのテストをビルドします .. - DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # 両方のバックエンドのテストをビルドする cmake --build 。 --ターゲットテスト Cテスト
cmake ../zenoh-cpp
の出力には、zenoh-c および/または zenoh-pico の依存関係が見つかった場所が示されていることに注意してください。
例は 2 つのサブディレクトリに分割されています。サブディレクトリ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 backendcmake のみのサンプルをビルドする .. -DZENOHCXX_ZENOHC=OFF -DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # zenoh-pico backendcmake のみのサンプルをビルドする .. - DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # 両方のバックエンドのサンプルをビルドするには cmake --build 。 --ターゲットの例
サンプルはbuild/examples/zenohc
ディレクトリとbuild/examples/zenohpico
ディレクトリに配置されます。
現在のディレクトリを必要なバリアント (ビルド ディレクトリ内のexamples/zenohc
またはexamples/zenohpico
) に変更します。
コマンド ライン引数 (キー式、値、ルーター アドレス) のソース例を参照してください。
zenohc
サンプルはスタンドアロンで動作しますが、 zenohpico
サンプルの場合は動作する zenoh ルーターが必要です。したがって、 zenohpico
サンプルを実行するには、zenoh プロジェクトをダウンロードし、ルーターを実行します (Rust がインストールされている必要があります)。
git clone https://github.com/eclipse-zenoh/zenohcd zenoh カーゴラン
./z_sub
./z_pub
z_pub
z_sub
によって送信されたメッセージを受信する必要があります。
./z_queryable
./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 の短い例については、examples/simple ディレクトリも参照してください。
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 を参照してください。