Eclipse Zenoh: publicación/suscripción, almacenamiento/consulta y cálculo sin gastos generales.
Zenoh (pronunciado /zeno/ ) unifica datos en movimiento, datos en reposo y cálculos. Combina cuidadosamente el pub/sub tradicional con almacenamientos, consultas y cálculos distribuidos geográficamente, al tiempo que conserva un nivel de eficiencia de tiempo y espacio que va mucho más allá de cualquiera de las pilas convencionales.
Consulte el sitio web zenoh.io y la hoja de ruta para obtener información más detallada.
La API de Zenoh C++ son enlaces de C++ solo de encabezados para las bibliotecas zenoh-c y zenoh-pico.
Los enlaces de C++ todavía están en desarrollo activo, por lo que el equipo de Zenoh agradecerá mucho cualquier ayuda para probarlos en varias plataformas, arquitectura del sistema, etc. y para informar cualquier problema que pueda encontrar. Esto ayudará a mejorar enormemente su madurez y robustez.
El único requisito estricto para crear la biblioteca es un compilador compatible con C++17. El uso de la biblioteca requiere la instalación de zenoh-c o zenoh-pico.
⚠️ ADVERTENCIA⚠️ : Zenoh y su ecosistema están en desarrollo activo. Cuando compila desde git, asegúrese de compilar también desde git cualquier otro repositorio de Zenoh que planee usar (por ejemplo, enlace, complemento, backend, etc.). Puede suceder que algunos cambios en git no sean compatibles con la versión empaquetada más reciente de Zenoh (por ejemplo, deb, docker, pip). Nos esforzamos especialmente en mantener la compatibilidad entre los distintos repositorios de git en el proyecto Zenoh.
Para instalar zenoh-cpp siga los siguientes pasos:
Clonar las fuentes.
clon de git https://github.com/eclipse-zenoh/zenoh-cpp.git
Construir e instalar.
De forma predeterminada, se espera que tenga instalado zenoh-c. Si desea instalar para el backend de zenoh-pico o para ambos (o no especificar ningún backend), configure las variables ZENOHCXX_ZENOHC
o ZENOHCXX_ZENOHPICO
Cmake en ON
o OFF
según corresponda. Tenga en cuenta que se requiere al menos uno de los backends para usar la biblioteca y/o crear pruebas y ejemplos.
Utilice la opción CMAKE_INSTALL_PREFIX
para especificar la ubicación de instalación. Sin este parámetro, la instalación se realiza en la ubicación predeterminada del sistema /usr/local
, que requiere privilegios de root.
compilación mkdir && compilación cd cmake .. -DCMAKE_INSTALL_PREFIX=~/.local # para configurar solo para el backend de zenoh-ccmake .. -DZENOHCXX_ZENOHC=OFF -DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # para configurar solo para el backendcmake de zenoh-pico .. -DZENOHCXX_ZENOHC= APAGADO -DZENOHCXX_ZENOHPICO=OFF -DCMAKE_INSTALL_PREFIX=~/.local # para configurar ninguno de los backendscmake .. -DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # para configurar para ambos backendscmake --install .
De forma predeterminada, se espera que tenga instalado zenoh-c. Si desea crear y ejecutar pruebas para el backend de zenoh-pico o para ambos, configure las variables ZENOHCXX_ZENOHC
o ZENOHCXX_ZENOHPICO
Cmake en ON
o OFF
según corresponda.
Para crear pruebas, ejecute:
compilación mkdir && compilación cd cmake .. -DCMAKE_INSTALL_PREFIX=~/.local # para compilar pruebas solo para el backendcmake de zenoh-c.. -DZENOHCXX_ZENOHC=OFF -DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # para compilar pruebas solo para el backendcmake de zenoh-pico .. - DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # para crear pruebas para ambos backendscmake --build . --pruebas objetivo prueba
Observe que la salida de cmake ../zenoh-cpp
muestra dónde se encontraron las dependencias de zenoh-c y/o zenoh-pico.
Los ejemplos se dividen en dos subdirectorios. El subdirectorio universal
contiene ejemplos de zenoh-cpp que se pueden compilar con los backends zenoh-c y zenoh-pico. El subdirectorio zenohc
contiene ejemplos con funcionalidad específica de zenoh-c.
De forma predeterminada, se espera que tenga instalado zenoh-c. Si desea crear ejemplos para el backend de zenoh-pico o para ambos, configure las variables ZENOHCXX_ZENOHC
o ZENOHCXX_ZENOHPICO
Cmake en ON
o OFF
según corresponda.
Para crear ejemplos, ejecute:
cmake .. -DCMAKE_INSTALL_PREFIX=~/.local # para crear ejemplos solo para el backendcmake de zenoh-c .. -DZENOHCXX_ZENOHC=OFF -DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # para crear ejemplos solo para el backendcmake de zenoh-pico .. - DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # para crear ejemplos para ambos backendscmake --build . --ejemplos de destino
Los ejemplos se colocan en los directorios build/examples/zenohc
y build/examples/zenohpico
.
Cambie el directorio actual a la variante que desee ( examples/zenohc
o examples/zenohpico
en el directorio de compilación).
Consulte fuentes de ejemplo para argumentos de línea de comando (expresión clave, valor, dirección del enrutador).
Los ejemplos zenohc
pueden funcionar de forma independiente, pero para los ejemplos zenohpico
se requiere el enrutador zenoh que funcione. Entonces, para ejecutar ejemplos zenohpico
, descargue el proyecto zenoh y ejecute el enrutador (debe estar instalado Rust):
clon de git https://github.com/eclipse-zenoh/zenohcd zenoh recorrido de carga
./z_sub
./z_pub
El z_pub
debería recibir el mensaje enviado por z_sub
.
./z_queryable
./z_get
El z_get
debería recibir los datos de z_queryable
.
./z_sub_thr_cpp
./z_pub_thr_cpp 1024
Después de un retraso de 30 a 40 segundos, z_sub_thr
comenzará a mostrar los resultados de la medida de rendimiento.
A continuación se detallan los pasos para incluir zenoh-cpp en el proyecto CMake. Consulte también el directorio de ejemplos/simple para ver ejemplos breves de CMakeLists.txt.
incluya zenoh-c o zenoh-pico en su proyecto CMake antes de depender de zenoh-cpp. Esto es importante ya que los destinos de biblioteca que necesita ( zenohcxx::zenohpico
, zenohcxx::zenohc::lib
) se definen solo si sus destinos de biblioteca backend ( zenohpico::lib
y/o zenohc::lib
están definidos)
incluya zenoh-cpp usando la función find_package CMake:
find_package(zenohc) #if using zenoh-c backend find_package(zenohpico) #if using zenoh-pico backend find_package(zenohcxx)
agregue dependencia de zenoh-cpp a su proyecto:
target_link_libraries(yourproject PUBLIC zenohcxx::zenohc) #if using zenoh-c backend target_link_libraries(yourproject PUBLIC zenohcxx::zenohpico) #if using zenoh-pico backend
incluya el encabezado zenoh.hxx. Toda la funcionalidad de zenoh está disponible bajo el espacio de nombres zenoh
:
#incluir "zenoh.hxx"usando el espacio de nombres zenoh;
La documentación está en zenoh-cpp.readthedocs.io. Las instrucciones sobre cómo crear documentación localmente se encuentran en docs/README.md.