L'Eclipse Zenoh : publication/sub, magasin/requête et calcul sans frais généraux.
Zenoh (prononcer /zeno/ ) unifie les données en mouvement, les données au repos et les calculs. Il allie soigneusement le pub/sub traditionnel avec des stockages, des requêtes et des calculs géo-distribués, tout en conservant un niveau d'efficacité temporelle et spatiale bien au-delà de n'importe quelle pile traditionnelle.
Consultez le site Web zenoh.io et la feuille de route pour des informations plus détaillées.
L'API Zenoh C++ sont des en-têtes uniquement des liaisons C++ pour les bibliothèques zenoh-c et zenoh-pico.
Les liaisons C++ sont toujours en cours de développement actif, l'équipe Zenoh appréciera donc grandement toute aide pour les tester sur diverses plates-formes, architectures système, etc. et pour signaler tout problème que vous pourriez rencontrer. Cela contribuera à améliorer considérablement sa maturité et sa robustesse.
La seule exigence stricte pour créer la bibliothèque est un compilateur compatible C++17. L'utilisation de la bibliothèque nécessite l'installation de zenoh-c ou de zenoh-pico.
⚠️ AVERTISSEMENT⚠️ : Zenoh et son écosystème sont en développement actif. Lorsque vous construisez à partir de git, assurez-vous de créer également à partir de git tout autre référentiel Zenoh que vous envisagez d'utiliser (par exemple, liaison, plugin, backend, etc.). Il peut arriver que certaines modifications apportées à git ne soient pas compatibles avec la version la plus récente de Zenoh (par exemple, deb, docker, pip). Nous avons déployé des efforts particuliers pour maintenir la compatibilité entre les différents référentiels git du projet Zenoh.
Pour installer zenoh-cpp, procédez comme suit :
Clonez les sources.
clone git https://github.com/eclipse-zenoh/zenoh-cpp.git
Construisez et installez.
Par défaut, il est prévu que zenoh-c soit installé. Si vous souhaitez installer pour le backend zenoh-pico ou pour les deux (ou pour ne spécifier aucun backend), veuillez définir les variables Cmake ZENOHCXX_ZENOHC
ou ZENOHCXX_ZENOHPICO
sur ON
ou OFF
en conséquence. Notez qu'au moins un des backends est requis pour utiliser la bibliothèque et/ou créer des tests et des exemples.
Utilisez l'option CMAKE_INSTALL_PREFIX
pour spécifier l'emplacement d'installation. Sans ce paramètre, l'installation est effectuée à l'emplacement système par défaut /usr/local
ce qui nécessite les privilèges root.
mkdir construire && cd construire cmake .. -DCMAKE_INSTALL_PREFIX=~/.local # à configurer uniquement pour le backendcmake zenoh-c .. -DZENOHCXX_ZENOHC=OFF -DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # à configurer uniquement pour le backendcmake zenoh-pico .. -DZENOHCXX_ZENOHC= OFF -DZENOHCXX_ZENOHPICO=OFF -DCMAKE_INSTALL_PREFIX=~/.local # à configurer pour aucun des backendscmake .. -DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # à configurer pour les deux backendscmake --install .
Par défaut, il est prévu que zenoh-c soit installé. Si vous souhaitez créer et exécuter des tests pour le backend zenoh-pico ou pour les deux, veuillez définir les variables Cmake ZENOHCXX_ZENOHC
ou ZENOHCXX_ZENOHPICO
sur ON
ou OFF
en conséquence.
Pour créer des tests, exécutez :
mkdir construire && cd construire cmake .. -DCMAKE_INSTALL_PREFIX=~/.local # pour créer des tests uniquement pour le backendcmake de zenoh-c .. -DZENOHCXX_ZENOHC=OFF -DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # pour créer des tests uniquement pour le backendcmake de zenoh-pico .. - DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # pour créer des tests pour les deux backendscmake --build . --tests cibles test
Notez que la sortie de cmake ../zenoh-cpp
montre où zenoh-c et/ou zenoh-pico les dépendances ont été trouvées.
Les exemples sont divisés en deux sous-répertoires. Le sous-répertoire universal
contient des exemples zenoh-cpp constructibles avec les backends zenoh-c et zenoh-pico. Le sous-répertoire zenohc
contient des exemples avec des fonctionnalités spécifiques à zenoh-c.
Par défaut, il est prévu que zenoh-c soit installé. Si vous souhaitez créer des exemples pour le backend zenoh-pico ou pour les deux, veuillez définir les variables Cmake ZENOHCXX_ZENOHC
ou ZENOHCXX_ZENOHPICO
sur ON
ou OFF
en conséquence.
Pour créer des exemples, exécutez :
cmake .. -DCMAKE_INSTALL_PREFIX=~/.local # pour créer des exemples uniquement pour le backendcmake zenoh-c .. -DZENOHCXX_ZENOHC=OFF -DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # pour créer des exemples uniquement pour le backendcmake zenoh-pico .. - DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # pour créer des exemples pour les deux backendscmake --build . --exemples cibles
Les exemples sont placés dans les répertoires build/examples/zenohc
et build/examples/zenohpico
.
Remplacez le répertoire actuel par la variante souhaitée ( examples/zenohc
ou examples/zenohpico
dans le répertoire de construction).
Voir des exemples de sources pour les arguments de ligne de commande (expression clé, valeur, adresse du routeur).
Les exemples zenohc
peuvent fonctionner de manière autonome, mais pour les exemples zenohpico
le routeur zenoh fonctionnel est requis. Donc, pour exécuter les exemples zenohpico
, téléchargez le projet zenoh et exécutez le routeur (Rust doit être installé) :
git clone https://github.com/eclipse-zenoh/zenohcd zenoh course de marchandises
./z_sub
./z_pub
Le z_pub
devrait recevoir le message envoyé par z_sub
.
./z_queryable
./z_get
Le z_get
devrait recevoir les données de z_queryable
.
./z_sub_thr_cpp
./z_pub_thr_cpp 1024
Après un délai de 30 à 40 secondes, z_sub_thr
commencera à afficher les résultats de la mesure du débit.
Vous trouverez ci-dessous les étapes pour inclure zenoh-cpp dans le projet CMake. Voir aussi le répertoire examples/simple pour de courts exemples de CMakeLists.txt.
incluez zenoh-c ou zenoh-pico dans votre projet CMake avant de dépendre de zenoh-cpp lui-même. Ceci est important car les cibles de bibliothèque dont vous avez besoin ( zenohcxx::zenohpico
, zenohcxx::zenohc::lib
) ne sont définies que si leurs cibles de bibliothèque backend ( zenohpico::lib
et/ou zenohc::lib
sont définies)
incluez zenoh-cpp en utilisant la fonction find_package CMake :
find_package(zenohc) #if using zenoh-c backend find_package(zenohpico) #if using zenoh-pico backend find_package(zenohcxx)
ajoutez une dépendance sur zenoh-cpp à votre projet :
target_link_libraries(yourproject PUBLIC zenohcxx::zenohc) #if using zenoh-c backend target_link_libraries(yourproject PUBLIC zenohcxx::zenohpico) #if using zenoh-pico backend
inclure l'en-tête zenoh.hxx. Toutes les fonctionnalités de zenoh sont disponibles sous l'espace de noms zenoh
:
#inclut "zenoh.hxx" en utilisant l'espace de noms zenoh ;
La documentation est sur zenoh-cpp.readthedocs.io. Les instructions sur la façon de créer de la documentation localement se trouvent sur docs/README.md.