Skip to content

C++ client library to connect to the zenoh implementation of uProtocol

License

Notifications You must be signed in to change notification settings

eclipse-uprotocol/up-transport-zenoh-cpp

Repository files navigation

uProtocol C++ Zenoh Transport (up-transport-zenoh-cpp)

Welcome!

This library provides a Zenoh-based uProtocol transport for C++ uEntities.

IMPORTANT NOTE: This project is under active development

This module contains the Zenoh implementation of the Layer 1 UTransport API from up-cpp.

Getting Started

Requirements:

  • Compiler: GCC/G++ 11 or Clang 13
  • Conan : 1.59 or latest 2.X

Conan packages

Using the recipes found in up-conan-recipes, build these Conan packages:

  1. up-core-api - conan create --version 1.6.0-alpha4 --build=missing up-core-api/release
  2. up-cpp - conan create --version 1.0.1 --build=missing up-cpp/release
  3. zenoh-c - conan create --version 1.2.1 zenohc-tmp/prebuilt
  4. zenoh-c - conan create --version 1.2.1 zenohcpp-tmp/from-source

NOTE: all conan commands in this document use Conan 2.x syntax. Please adjust accordingly when using Conan 1.x.

How to Use the Library

To add up-transport-zenoh-cpp to your conan build dependencies, place following in your conanfile.txt:

[requires]
up-transport-zenoh-cpp/[>=1.0.0 <2.0.0]

[generators]
CMakeDeps
CMakeToolchain

[layout]
cmake_layout

NOTE: If using conan version 1.59 Ensure that the conan profile is configured to use ABI 11 (libstdc++11: New ABI) standards according to the Conan documentation for managing gcc ABIs.

Building locally

The following steps are only required for developers to locally build and test up-transport-zenoh-cpp, If you are making a project that uses up-transport-zenoh-cpp, follow the steps in the How to Use the Library section above.

With Conan for dependencies

cd up-transport-zenoh-cpp
conan install . --build=missing
cmake --preset conan-release
cd build/Release
cmake --build . -- -j

Once the build completes, tests can be run with ctest.

With dependencies installed as system libraries

TODO Verify steps for pure cmake build without Conan.

Generate UT Coverage

To get code coverage, perform the steps above, but replace cmake --preset... with

cd build/Release
cmake ../../ -DCMAKE_TOOLCHAIN_FILE=generators/conan_toolchain.cmake -DCMAKE_BUILD_TYPE=Coverage

Once the tests complete, the Unit Test Coverage report can be generated from the base up-cpp folder with: ./Coverage.sh

./coverage.sh

Creating the Conan package

See: up-conan-recipes

Show your support

Give a ⭐️ if this project helped you!

About

C++ client library to connect to the zenoh implementation of uProtocol

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published