Repo symbol

zenoh_bridge_dds repository

zenoh_bridge_dds

Repository Summary

Checkout URI https://github.com/eclipse-zenoh/zenoh-plugin-dds.git
VCS Type git
VCS Version master
Last Updated 2024-01-12
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
zenoh_bridge_dds 0.5.0

README

Discussion Discord License License

Eclipse Zenoh

The Eclipse Zenoh: Zero Overhead Pub/sub, Store/Query and Compute.

Zenoh (pronounce /zeno/) unifies data in motion, data at rest and computations. It carefully blends traditional pub/sub with geo-distributed storages, queries and computations, while retaining a level of time and space efficiency that is well beyond any of the mainstream stacks.

Check the website zenoh.io and the roadmap for more detailed information.


DDS plugin and standalone zenoh-bridge-dds

:point_right: Install latest release: see below

:point_right: Docker image: see below

:point_right: Build “master” branch: see below

Background

The Data Distribution Service (DDS) is a standard for data-centric publish subscribe. Whilst DDS has been around for quite some time and has a long history of deployments in various industries, it has recently gained quite a bit of attentions thanks to its adoption by the Robotic Operating System (ROS 2) – where it is used for communication between ROS 2 nodes.

⚠️ On usage with ROS 2 ⚠️

This plugin is based on the DDS standard, and thus can work with ROS 2 to some extent.

However we strongly advise ROS 2 users to rather try the new zenoh-plugin-ros2dds which is dedicated to the support of ROS 2 with DDS. Thanks to a better integration with ROS 2 concepts, this new plugin comes with those benefits:

  • Better integration of the ROS graph (all ROS topics/services/actions can be seen across bridges)
  • Better support of ROS toolings (ros2 CLI, rviz2…)
  • Configuration of a ROS namespace on the bridge (instead of on each ROS Node)
  • Services and Action as Zenoh Queryables with more efficiency and scalability that RPC over DDS
  • Even more compact discovery information between the bridges (not forwarding all ros_discovery_info messages as such)

This Zenoh plugin for DDS will eventually be deprecated for ROS 2 usage.

Plugin or bridge ?

This software is built in 2 ways to choose from:

  • zenoh-plugin-dds: a Zenoh plugin - a dynamic library that can be loaded by a Zenoh router
  • zenoh-bridge-dds: a standalone executable

The features and configurations descibed in this document applies to both. Meaning the “plugin” and “bridge” words are interchangeables in the rest of this document.

How to install it

To install the latest release of either the DDS plugin for the Zenoh router, either the zenoh-bridge-dds standalone executable, you can do as follows:

Manual installation (all platforms)

All release packages can be downloaded from:

  • https://download.eclipse.org/zenoh/zenoh-plugin-dds/latest/

Each subdirectory has the name of the Rust target. See the platforms each target corresponds to on https://doc.rust-lang.org/stable/rustc/platform-support.html

Choose your platform and download:

  • the zenoh-plugin-dds-<version>-<platform>.zip file for the plugin.
    Then unzip it in the same directory than zenohd or to any directory where it can find the plugin library (e.g. /usr/lib)
  • the zenoh-bridge-dds-<version>-<platform>.zip file for the standalone executable.
    Then unzip it where you want, and run the extracted zenoh-bridge-dds binary.

Linux Debian

Add Eclipse Zenoh private repository to the sources list:

echo "deb [trusted=yes] https://download.eclipse.org/zenoh/debian-repo/ /" | sudo tee -a /etc/apt/sources.list > /dev/null
sudo apt update

Then either:

  • install the plugin with: sudo apt install zenoh-plugin-dds.
  • install the standalone executable with: sudo apt install zenoh-bridge-dds.

How to build it

:warning: WARNING :warning: : Zenoh and its ecosystem are under active development. When you build from git, make sure you also build from git any other Zenoh repository you plan to use (e.g. binding, plugin, backend, etc.). It may happen that some changes in git are not compatible with the most recent packaged Zenoh release (e.g. deb, docker, pip). We put particular effort in mantaining compatibility between the various git repositories in the Zenoh project.

:warning: WARNING :warning: : As Rust doesn’t have a stable ABI, the plugins should be built with the exact same Rust version than zenohd, and using for zenoh dependency the same version (or commit number) than ‘zenohd’. Otherwise, incompatibilities in memory mapping of shared types between zenohd and the library can lead to a "SIGSEV" crash.

In order to build the zenoh bridge for DDS you need first to install the following dependencies:

  • Rust. If you already have the Rust toolchain installed, make sure it is up-to-date with:
  $ rustup update
  
  • On Linux, make sure the llvm and clang development packages are installed:
    • on Debians do: sudo apt install llvm-dev libclang-dev

File truncated at 100 lines see the full file

CONTRIBUTING

Contributing to Eclipse zenoh

Thanks for your interest in this project.

Project description

Eclipse zenoh provides is a stack designed to

  1. minimize network overhead,
  2. support extremely constrained devices,
  3. supports devices with low duty-cycle by allowing the negotiation of data exchange modes and schedules,
  4. provide a rich set of abstraction for distributing, querying and storing data along the entire system, and
  5. provide extremely low latency and high throughput.
  • https://projects.eclipse.org/projects/iot.zenoh

Developer resources

Information regarding source code management, builds, coding standards, and more.

  • https://projects.eclipse.org/projects/iot.zenoh/developer

The project maintains the following source code repositories

  • https://github.com/eclipse-zenoh

Eclipse Contributor Agreement

Before your contribution can be accepted by the project team contributors must electronically sign the Eclipse Contributor Agreement (ECA).

  • http://www.eclipse.org/legal/ECA.php

Commits that are provided by non-committers must have a Signed-off-by field in the footer indicating that the author is aware of the terms by which the contribution has been provided to the project. The non-committer must additionally have an Eclipse Foundation account and must have a signed Eclipse Contributor Agreement (ECA) on file.

For more information, please see the Eclipse Committer Handbook: https://www.eclipse.org/projects/handbook/#resources-commit

Contact

Contact the project developers via the project’s “dev” list.

  • https://accounts.eclipse.org/mailing-list/zenoh-dev

Or via the Discord server.

  • https://discord.gg/vSDSpqnbkm
# Contributing to Eclipse zenoh Thanks for your interest in this project. ## Project description Eclipse zenoh provides is a stack designed to 1. minimize network overhead, 2. support extremely constrained devices, 3. supports devices with low duty-cycle by allowing the negotiation of data exchange modes and schedules, 4. provide a rich set of abstraction for distributing, querying and storing data along the entire system, and 5. provide extremely low latency and high throughput. * https://projects.eclipse.org/projects/iot.zenoh ## Developer resources Information regarding source code management, builds, coding standards, and more. * https://projects.eclipse.org/projects/iot.zenoh/developer The project maintains the following source code repositories * https://github.com/eclipse-zenoh ## Eclipse Contributor Agreement Before your contribution can be accepted by the project team contributors must electronically sign the Eclipse Contributor Agreement (ECA). * http://www.eclipse.org/legal/ECA.php Commits that are provided by non-committers must have a Signed-off-by field in the footer indicating that the author is aware of the terms by which the contribution has been provided to the project. The non-committer must additionally have an Eclipse Foundation account and must have a signed Eclipse Contributor Agreement (ECA) on file. For more information, please see the Eclipse Committer Handbook: https://www.eclipse.org/projects/handbook/#resources-commit ## Contact Contact the project developers via the project's "dev" list. * https://accounts.eclipse.org/mailing-list/zenoh-dev Or via the Discord server. * https://discord.gg/vSDSpqnbkm
Repo symbol

zenoh_bridge_dds repository

zenoh_bridge_dds

Repository Summary

Checkout URI https://github.com/eclipse-zenoh/zenoh-plugin-dds.git
VCS Type git
VCS Version master
Last Updated 2024-01-12
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
zenoh_bridge_dds 0.5.0

README

Discussion Discord License License

Eclipse Zenoh

The Eclipse Zenoh: Zero Overhead Pub/sub, Store/Query and Compute.

Zenoh (pronounce /zeno/) unifies data in motion, data at rest and computations. It carefully blends traditional pub/sub with geo-distributed storages, queries and computations, while retaining a level of time and space efficiency that is well beyond any of the mainstream stacks.

Check the website zenoh.io and the roadmap for more detailed information.


DDS plugin and standalone zenoh-bridge-dds

:point_right: Install latest release: see below

:point_right: Docker image: see below

:point_right: Build “master” branch: see below

Background

The Data Distribution Service (DDS) is a standard for data-centric publish subscribe. Whilst DDS has been around for quite some time and has a long history of deployments in various industries, it has recently gained quite a bit of attentions thanks to its adoption by the Robotic Operating System (ROS 2) – where it is used for communication between ROS 2 nodes.

⚠️ On usage with ROS 2 ⚠️

This plugin is based on the DDS standard, and thus can work with ROS 2 to some extent.

However we strongly advise ROS 2 users to rather try the new zenoh-plugin-ros2dds which is dedicated to the support of ROS 2 with DDS. Thanks to a better integration with ROS 2 concepts, this new plugin comes with those benefits:

  • Better integration of the ROS graph (all ROS topics/services/actions can be seen across bridges)
  • Better support of ROS toolings (ros2 CLI, rviz2…)
  • Configuration of a ROS namespace on the bridge (instead of on each ROS Node)
  • Services and Action as Zenoh Queryables with more efficiency and scalability that RPC over DDS
  • Even more compact discovery information between the bridges (not forwarding all ros_discovery_info messages as such)

This Zenoh plugin for DDS will eventually be deprecated for ROS 2 usage.

Plugin or bridge ?

This software is built in 2 ways to choose from:

  • zenoh-plugin-dds: a Zenoh plugin - a dynamic library that can be loaded by a Zenoh router
  • zenoh-bridge-dds: a standalone executable

The features and configurations descibed in this document applies to both. Meaning the “plugin” and “bridge” words are interchangeables in the rest of this document.

How to install it

To install the latest release of either the DDS plugin for the Zenoh router, either the zenoh-bridge-dds standalone executable, you can do as follows:

Manual installation (all platforms)

All release packages can be downloaded from:

  • https://download.eclipse.org/zenoh/zenoh-plugin-dds/latest/

Each subdirectory has the name of the Rust target. See the platforms each target corresponds to on https://doc.rust-lang.org/stable/rustc/platform-support.html

Choose your platform and download:

  • the zenoh-plugin-dds-<version>-<platform>.zip file for the plugin.
    Then unzip it in the same directory than zenohd or to any directory where it can find the plugin library (e.g. /usr/lib)
  • the zenoh-bridge-dds-<version>-<platform>.zip file for the standalone executable.
    Then unzip it where you want, and run the extracted zenoh-bridge-dds binary.

Linux Debian

Add Eclipse Zenoh private repository to the sources list:

echo "deb [trusted=yes] https://download.eclipse.org/zenoh/debian-repo/ /" | sudo tee -a /etc/apt/sources.list > /dev/null
sudo apt update

Then either:

  • install the plugin with: sudo apt install zenoh-plugin-dds.
  • install the standalone executable with: sudo apt install zenoh-bridge-dds.

How to build it

:warning: WARNING :warning: : Zenoh and its ecosystem are under active development. When you build from git, make sure you also build from git any other Zenoh repository you plan to use (e.g. binding, plugin, backend, etc.). It may happen that some changes in git are not compatible with the most recent packaged Zenoh release (e.g. deb, docker, pip). We put particular effort in mantaining compatibility between the various git repositories in the Zenoh project.

:warning: WARNING :warning: : As Rust doesn’t have a stable ABI, the plugins should be built with the exact same Rust version than zenohd, and using for zenoh dependency the same version (or commit number) than ‘zenohd’. Otherwise, incompatibilities in memory mapping of shared types between zenohd and the library can lead to a "SIGSEV" crash.

In order to build the zenoh bridge for DDS you need first to install the following dependencies:

  • Rust. If you already have the Rust toolchain installed, make sure it is up-to-date with:
  $ rustup update
  
  • On Linux, make sure the llvm and clang development packages are installed:
    • on Debians do: sudo apt install llvm-dev libclang-dev

File truncated at 100 lines see the full file

CONTRIBUTING

Contributing to Eclipse zenoh

Thanks for your interest in this project.

Project description

Eclipse zenoh provides is a stack designed to

  1. minimize network overhead,
  2. support extremely constrained devices,
  3. supports devices with low duty-cycle by allowing the negotiation of data exchange modes and schedules,
  4. provide a rich set of abstraction for distributing, querying and storing data along the entire system, and
  5. provide extremely low latency and high throughput.
  • https://projects.eclipse.org/projects/iot.zenoh

Developer resources

Information regarding source code management, builds, coding standards, and more.

  • https://projects.eclipse.org/projects/iot.zenoh/developer

The project maintains the following source code repositories

  • https://github.com/eclipse-zenoh

Eclipse Contributor Agreement

Before your contribution can be accepted by the project team contributors must electronically sign the Eclipse Contributor Agreement (ECA).

  • http://www.eclipse.org/legal/ECA.php

Commits that are provided by non-committers must have a Signed-off-by field in the footer indicating that the author is aware of the terms by which the contribution has been provided to the project. The non-committer must additionally have an Eclipse Foundation account and must have a signed Eclipse Contributor Agreement (ECA) on file.

For more information, please see the Eclipse Committer Handbook: https://www.eclipse.org/projects/handbook/#resources-commit

Contact

Contact the project developers via the project’s “dev” list.

  • https://accounts.eclipse.org/mailing-list/zenoh-dev

Or via the Discord server.

  • https://discord.gg/vSDSpqnbkm
# Contributing to Eclipse zenoh Thanks for your interest in this project. ## Project description Eclipse zenoh provides is a stack designed to 1. minimize network overhead, 2. support extremely constrained devices, 3. supports devices with low duty-cycle by allowing the negotiation of data exchange modes and schedules, 4. provide a rich set of abstraction for distributing, querying and storing data along the entire system, and 5. provide extremely low latency and high throughput. * https://projects.eclipse.org/projects/iot.zenoh ## Developer resources Information regarding source code management, builds, coding standards, and more. * https://projects.eclipse.org/projects/iot.zenoh/developer The project maintains the following source code repositories * https://github.com/eclipse-zenoh ## Eclipse Contributor Agreement Before your contribution can be accepted by the project team contributors must electronically sign the Eclipse Contributor Agreement (ECA). * http://www.eclipse.org/legal/ECA.php Commits that are provided by non-committers must have a Signed-off-by field in the footer indicating that the author is aware of the terms by which the contribution has been provided to the project. The non-committer must additionally have an Eclipse Foundation account and must have a signed Eclipse Contributor Agreement (ECA) on file. For more information, please see the Eclipse Committer Handbook: https://www.eclipse.org/projects/handbook/#resources-commit ## Contact Contact the project developers via the project's "dev" list. * https://accounts.eclipse.org/mailing-list/zenoh-dev Or via the Discord server. * https://discord.gg/vSDSpqnbkm
Repo symbol

zenoh_bridge_dds repository

zenoh_bridge_dds

Repository Summary

Checkout URI https://github.com/eclipse-zenoh/zenoh-plugin-dds.git
VCS Type git
VCS Version master
Last Updated 2024-01-12
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
zenoh_bridge_dds 0.5.0

README

Discussion Discord License License

Eclipse Zenoh

The Eclipse Zenoh: Zero Overhead Pub/sub, Store/Query and Compute.

Zenoh (pronounce /zeno/) unifies data in motion, data at rest and computations. It carefully blends traditional pub/sub with geo-distributed storages, queries and computations, while retaining a level of time and space efficiency that is well beyond any of the mainstream stacks.

Check the website zenoh.io and the roadmap for more detailed information.


DDS plugin and standalone zenoh-bridge-dds

:point_right: Install latest release: see below

:point_right: Docker image: see below

:point_right: Build “master” branch: see below

Background

The Data Distribution Service (DDS) is a standard for data-centric publish subscribe. Whilst DDS has been around for quite some time and has a long history of deployments in various industries, it has recently gained quite a bit of attentions thanks to its adoption by the Robotic Operating System (ROS 2) – where it is used for communication between ROS 2 nodes.

⚠️ On usage with ROS 2 ⚠️

This plugin is based on the DDS standard, and thus can work with ROS 2 to some extent.

However we strongly advise ROS 2 users to rather try the new zenoh-plugin-ros2dds which is dedicated to the support of ROS 2 with DDS. Thanks to a better integration with ROS 2 concepts, this new plugin comes with those benefits:

  • Better integration of the ROS graph (all ROS topics/services/actions can be seen across bridges)
  • Better support of ROS toolings (ros2 CLI, rviz2…)
  • Configuration of a ROS namespace on the bridge (instead of on each ROS Node)
  • Services and Action as Zenoh Queryables with more efficiency and scalability that RPC over DDS
  • Even more compact discovery information between the bridges (not forwarding all ros_discovery_info messages as such)

This Zenoh plugin for DDS will eventually be deprecated for ROS 2 usage.

Plugin or bridge ?

This software is built in 2 ways to choose from:

  • zenoh-plugin-dds: a Zenoh plugin - a dynamic library that can be loaded by a Zenoh router
  • zenoh-bridge-dds: a standalone executable

The features and configurations descibed in this document applies to both. Meaning the “plugin” and “bridge” words are interchangeables in the rest of this document.

How to install it

To install the latest release of either the DDS plugin for the Zenoh router, either the zenoh-bridge-dds standalone executable, you can do as follows:

Manual installation (all platforms)

All release packages can be downloaded from:

  • https://download.eclipse.org/zenoh/zenoh-plugin-dds/latest/

Each subdirectory has the name of the Rust target. See the platforms each target corresponds to on https://doc.rust-lang.org/stable/rustc/platform-support.html

Choose your platform and download:

  • the zenoh-plugin-dds-<version>-<platform>.zip file for the plugin.
    Then unzip it in the same directory than zenohd or to any directory where it can find the plugin library (e.g. /usr/lib)
  • the zenoh-bridge-dds-<version>-<platform>.zip file for the standalone executable.
    Then unzip it where you want, and run the extracted zenoh-bridge-dds binary.

Linux Debian

Add Eclipse Zenoh private repository to the sources list:

echo "deb [trusted=yes] https://download.eclipse.org/zenoh/debian-repo/ /" | sudo tee -a /etc/apt/sources.list > /dev/null
sudo apt update

Then either:

  • install the plugin with: sudo apt install zenoh-plugin-dds.
  • install the standalone executable with: sudo apt install zenoh-bridge-dds.

How to build it

:warning: WARNING :warning: : Zenoh and its ecosystem are under active development. When you build from git, make sure you also build from git any other Zenoh repository you plan to use (e.g. binding, plugin, backend, etc.). It may happen that some changes in git are not compatible with the most recent packaged Zenoh release (e.g. deb, docker, pip). We put particular effort in mantaining compatibility between the various git repositories in the Zenoh project.

:warning: WARNING :warning: : As Rust doesn’t have a stable ABI, the plugins should be built with the exact same Rust version than zenohd, and using for zenoh dependency the same version (or commit number) than ‘zenohd’. Otherwise, incompatibilities in memory mapping of shared types between zenohd and the library can lead to a "SIGSEV" crash.

In order to build the zenoh bridge for DDS you need first to install the following dependencies:

  • Rust. If you already have the Rust toolchain installed, make sure it is up-to-date with:
  $ rustup update
  
  • On Linux, make sure the llvm and clang development packages are installed:
    • on Debians do: sudo apt install llvm-dev libclang-dev

File truncated at 100 lines see the full file

CONTRIBUTING

Contributing to Eclipse zenoh

Thanks for your interest in this project.

Project description

Eclipse zenoh provides is a stack designed to

  1. minimize network overhead,
  2. support extremely constrained devices,
  3. supports devices with low duty-cycle by allowing the negotiation of data exchange modes and schedules,
  4. provide a rich set of abstraction for distributing, querying and storing data along the entire system, and
  5. provide extremely low latency and high throughput.
  • https://projects.eclipse.org/projects/iot.zenoh

Developer resources

Information regarding source code management, builds, coding standards, and more.

  • https://projects.eclipse.org/projects/iot.zenoh/developer

The project maintains the following source code repositories

  • https://github.com/eclipse-zenoh

Eclipse Contributor Agreement

Before your contribution can be accepted by the project team contributors must electronically sign the Eclipse Contributor Agreement (ECA).

  • http://www.eclipse.org/legal/ECA.php

Commits that are provided by non-committers must have a Signed-off-by field in the footer indicating that the author is aware of the terms by which the contribution has been provided to the project. The non-committer must additionally have an Eclipse Foundation account and must have a signed Eclipse Contributor Agreement (ECA) on file.

For more information, please see the Eclipse Committer Handbook: https://www.eclipse.org/projects/handbook/#resources-commit

Contact

Contact the project developers via the project’s “dev” list.

  • https://accounts.eclipse.org/mailing-list/zenoh-dev

Or via the Discord server.

  • https://discord.gg/vSDSpqnbkm
# Contributing to Eclipse zenoh Thanks for your interest in this project. ## Project description Eclipse zenoh provides is a stack designed to 1. minimize network overhead, 2. support extremely constrained devices, 3. supports devices with low duty-cycle by allowing the negotiation of data exchange modes and schedules, 4. provide a rich set of abstraction for distributing, querying and storing data along the entire system, and 5. provide extremely low latency and high throughput. * https://projects.eclipse.org/projects/iot.zenoh ## Developer resources Information regarding source code management, builds, coding standards, and more. * https://projects.eclipse.org/projects/iot.zenoh/developer The project maintains the following source code repositories * https://github.com/eclipse-zenoh ## Eclipse Contributor Agreement Before your contribution can be accepted by the project team contributors must electronically sign the Eclipse Contributor Agreement (ECA). * http://www.eclipse.org/legal/ECA.php Commits that are provided by non-committers must have a Signed-off-by field in the footer indicating that the author is aware of the terms by which the contribution has been provided to the project. The non-committer must additionally have an Eclipse Foundation account and must have a signed Eclipse Contributor Agreement (ECA) on file. For more information, please see the Eclipse Committer Handbook: https://www.eclipse.org/projects/handbook/#resources-commit ## Contact Contact the project developers via the project's "dev" list. * https://accounts.eclipse.org/mailing-list/zenoh-dev Or via the Discord server. * https://discord.gg/vSDSpqnbkm
Repo symbol

zenoh_bridge_dds repository

zenoh_bridge_dds

Repository Summary

Checkout URI https://github.com/eclipse-zenoh/zenoh-plugin-dds.git
VCS Type git
VCS Version master
Last Updated 2024-01-12
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
zenoh_bridge_dds 0.5.0

README

Discussion Discord License License

Eclipse Zenoh

The Eclipse Zenoh: Zero Overhead Pub/sub, Store/Query and Compute.

Zenoh (pronounce /zeno/) unifies data in motion, data at rest and computations. It carefully blends traditional pub/sub with geo-distributed storages, queries and computations, while retaining a level of time and space efficiency that is well beyond any of the mainstream stacks.

Check the website zenoh.io and the roadmap for more detailed information.


DDS plugin and standalone zenoh-bridge-dds

:point_right: Install latest release: see below

:point_right: Docker image: see below

:point_right: Build “master” branch: see below

Background

The Data Distribution Service (DDS) is a standard for data-centric publish subscribe. Whilst DDS has been around for quite some time and has a long history of deployments in various industries, it has recently gained quite a bit of attentions thanks to its adoption by the Robotic Operating System (ROS 2) – where it is used for communication between ROS 2 nodes.

⚠️ On usage with ROS 2 ⚠️

This plugin is based on the DDS standard, and thus can work with ROS 2 to some extent.

However we strongly advise ROS 2 users to rather try the new zenoh-plugin-ros2dds which is dedicated to the support of ROS 2 with DDS. Thanks to a better integration with ROS 2 concepts, this new plugin comes with those benefits:

  • Better integration of the ROS graph (all ROS topics/services/actions can be seen across bridges)
  • Better support of ROS toolings (ros2 CLI, rviz2…)
  • Configuration of a ROS namespace on the bridge (instead of on each ROS Node)
  • Services and Action as Zenoh Queryables with more efficiency and scalability that RPC over DDS
  • Even more compact discovery information between the bridges (not forwarding all ros_discovery_info messages as such)

This Zenoh plugin for DDS will eventually be deprecated for ROS 2 usage.

Plugin or bridge ?

This software is built in 2 ways to choose from:

  • zenoh-plugin-dds: a Zenoh plugin - a dynamic library that can be loaded by a Zenoh router
  • zenoh-bridge-dds: a standalone executable

The features and configurations descibed in this document applies to both. Meaning the “plugin” and “bridge” words are interchangeables in the rest of this document.

How to install it

To install the latest release of either the DDS plugin for the Zenoh router, either the zenoh-bridge-dds standalone executable, you can do as follows:

Manual installation (all platforms)

All release packages can be downloaded from:

  • https://download.eclipse.org/zenoh/zenoh-plugin-dds/latest/

Each subdirectory has the name of the Rust target. See the platforms each target corresponds to on https://doc.rust-lang.org/stable/rustc/platform-support.html

Choose your platform and download:

  • the zenoh-plugin-dds-<version>-<platform>.zip file for the plugin.
    Then unzip it in the same directory than zenohd or to any directory where it can find the plugin library (e.g. /usr/lib)
  • the zenoh-bridge-dds-<version>-<platform>.zip file for the standalone executable.
    Then unzip it where you want, and run the extracted zenoh-bridge-dds binary.

Linux Debian

Add Eclipse Zenoh private repository to the sources list:

echo "deb [trusted=yes] https://download.eclipse.org/zenoh/debian-repo/ /" | sudo tee -a /etc/apt/sources.list > /dev/null
sudo apt update

Then either:

  • install the plugin with: sudo apt install zenoh-plugin-dds.
  • install the standalone executable with: sudo apt install zenoh-bridge-dds.

How to build it

:warning: WARNING :warning: : Zenoh and its ecosystem are under active development. When you build from git, make sure you also build from git any other Zenoh repository you plan to use (e.g. binding, plugin, backend, etc.). It may happen that some changes in git are not compatible with the most recent packaged Zenoh release (e.g. deb, docker, pip). We put particular effort in mantaining compatibility between the various git repositories in the Zenoh project.

:warning: WARNING :warning: : As Rust doesn’t have a stable ABI, the plugins should be built with the exact same Rust version than zenohd, and using for zenoh dependency the same version (or commit number) than ‘zenohd’. Otherwise, incompatibilities in memory mapping of shared types between zenohd and the library can lead to a "SIGSEV" crash.

In order to build the zenoh bridge for DDS you need first to install the following dependencies:

  • Rust. If you already have the Rust toolchain installed, make sure it is up-to-date with:
  $ rustup update
  
  • On Linux, make sure the llvm and clang development packages are installed:
    • on Debians do: sudo apt install llvm-dev libclang-dev

File truncated at 100 lines see the full file

CONTRIBUTING

Contributing to Eclipse zenoh

Thanks for your interest in this project.

Project description

Eclipse zenoh provides is a stack designed to

  1. minimize network overhead,
  2. support extremely constrained devices,
  3. supports devices with low duty-cycle by allowing the negotiation of data exchange modes and schedules,
  4. provide a rich set of abstraction for distributing, querying and storing data along the entire system, and
  5. provide extremely low latency and high throughput.
  • https://projects.eclipse.org/projects/iot.zenoh

Developer resources

Information regarding source code management, builds, coding standards, and more.

  • https://projects.eclipse.org/projects/iot.zenoh/developer

The project maintains the following source code repositories

  • https://github.com/eclipse-zenoh

Eclipse Contributor Agreement

Before your contribution can be accepted by the project team contributors must electronically sign the Eclipse Contributor Agreement (ECA).

  • http://www.eclipse.org/legal/ECA.php

Commits that are provided by non-committers must have a Signed-off-by field in the footer indicating that the author is aware of the terms by which the contribution has been provided to the project. The non-committer must additionally have an Eclipse Foundation account and must have a signed Eclipse Contributor Agreement (ECA) on file.

For more information, please see the Eclipse Committer Handbook: https://www.eclipse.org/projects/handbook/#resources-commit

Contact

Contact the project developers via the project’s “dev” list.

  • https://accounts.eclipse.org/mailing-list/zenoh-dev

Or via the Discord server.

  • https://discord.gg/vSDSpqnbkm
# Contributing to Eclipse zenoh Thanks for your interest in this project. ## Project description Eclipse zenoh provides is a stack designed to 1. minimize network overhead, 2. support extremely constrained devices, 3. supports devices with low duty-cycle by allowing the negotiation of data exchange modes and schedules, 4. provide a rich set of abstraction for distributing, querying and storing data along the entire system, and 5. provide extremely low latency and high throughput. * https://projects.eclipse.org/projects/iot.zenoh ## Developer resources Information regarding source code management, builds, coding standards, and more. * https://projects.eclipse.org/projects/iot.zenoh/developer The project maintains the following source code repositories * https://github.com/eclipse-zenoh ## Eclipse Contributor Agreement Before your contribution can be accepted by the project team contributors must electronically sign the Eclipse Contributor Agreement (ECA). * http://www.eclipse.org/legal/ECA.php Commits that are provided by non-committers must have a Signed-off-by field in the footer indicating that the author is aware of the terms by which the contribution has been provided to the project. The non-committer must additionally have an Eclipse Foundation account and must have a signed Eclipse Contributor Agreement (ECA) on file. For more information, please see the Eclipse Committer Handbook: https://www.eclipse.org/projects/handbook/#resources-commit ## Contact Contact the project developers via the project's "dev" list. * https://accounts.eclipse.org/mailing-list/zenoh-dev Or via the Discord server. * https://discord.gg/vSDSpqnbkm
Repo symbol

zenoh_bridge_dds repository

Repo symbol

zenoh_bridge_dds repository

Repo symbol

zenoh_bridge_dds repository

Repo symbol

zenoh_bridge_dds repository

Repo symbol

zenoh_bridge_dds repository

Repo symbol

zenoh_bridge_dds repository

Repo symbol

zenoh_bridge_dds repository

Repo symbol

zenoh_bridge_dds repository

zenoh_bridge_dds

Repository Summary

Checkout URI https://github.com/eclipse-zenoh/zenoh-plugin-dds.git
VCS Type git
VCS Version master
Last Updated 2024-01-12
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
zenoh_bridge_dds 0.5.0

README

Discussion Discord License License

Eclipse Zenoh

The Eclipse Zenoh: Zero Overhead Pub/sub, Store/Query and Compute.

Zenoh (pronounce /zeno/) unifies data in motion, data at rest and computations. It carefully blends traditional pub/sub with geo-distributed storages, queries and computations, while retaining a level of time and space efficiency that is well beyond any of the mainstream stacks.

Check the website zenoh.io and the roadmap for more detailed information.


DDS plugin and standalone zenoh-bridge-dds

:point_right: Install latest release: see below

:point_right: Docker image: see below

:point_right: Build “master” branch: see below

Background

The Data Distribution Service (DDS) is a standard for data-centric publish subscribe. Whilst DDS has been around for quite some time and has a long history of deployments in various industries, it has recently gained quite a bit of attentions thanks to its adoption by the Robotic Operating System (ROS 2) – where it is used for communication between ROS 2 nodes.

⚠️ On usage with ROS 2 ⚠️

This plugin is based on the DDS standard, and thus can work with ROS 2 to some extent.

However we strongly advise ROS 2 users to rather try the new zenoh-plugin-ros2dds which is dedicated to the support of ROS 2 with DDS. Thanks to a better integration with ROS 2 concepts, this new plugin comes with those benefits:

  • Better integration of the ROS graph (all ROS topics/services/actions can be seen across bridges)
  • Better support of ROS toolings (ros2 CLI, rviz2…)
  • Configuration of a ROS namespace on the bridge (instead of on each ROS Node)
  • Services and Action as Zenoh Queryables with more efficiency and scalability that RPC over DDS
  • Even more compact discovery information between the bridges (not forwarding all ros_discovery_info messages as such)

This Zenoh plugin for DDS will eventually be deprecated for ROS 2 usage.

Plugin or bridge ?

This software is built in 2 ways to choose from:

  • zenoh-plugin-dds: a Zenoh plugin - a dynamic library that can be loaded by a Zenoh router
  • zenoh-bridge-dds: a standalone executable

The features and configurations descibed in this document applies to both. Meaning the “plugin” and “bridge” words are interchangeables in the rest of this document.

How to install it

To install the latest release of either the DDS plugin for the Zenoh router, either the zenoh-bridge-dds standalone executable, you can do as follows:

Manual installation (all platforms)

All release packages can be downloaded from:

  • https://download.eclipse.org/zenoh/zenoh-plugin-dds/latest/

Each subdirectory has the name of the Rust target. See the platforms each target corresponds to on https://doc.rust-lang.org/stable/rustc/platform-support.html

Choose your platform and download:

  • the zenoh-plugin-dds-<version>-<platform>.zip file for the plugin.
    Then unzip it in the same directory than zenohd or to any directory where it can find the plugin library (e.g. /usr/lib)
  • the zenoh-bridge-dds-<version>-<platform>.zip file for the standalone executable.
    Then unzip it where you want, and run the extracted zenoh-bridge-dds binary.

Linux Debian

Add Eclipse Zenoh private repository to the sources list:

echo "deb [trusted=yes] https://download.eclipse.org/zenoh/debian-repo/ /" | sudo tee -a /etc/apt/sources.list > /dev/null
sudo apt update

Then either:

  • install the plugin with: sudo apt install zenoh-plugin-dds.
  • install the standalone executable with: sudo apt install zenoh-bridge-dds.

How to build it

:warning: WARNING :warning: : Zenoh and its ecosystem are under active development. When you build from git, make sure you also build from git any other Zenoh repository you plan to use (e.g. binding, plugin, backend, etc.). It may happen that some changes in git are not compatible with the most recent packaged Zenoh release (e.g. deb, docker, pip). We put particular effort in mantaining compatibility between the various git repositories in the Zenoh project.

:warning: WARNING :warning: : As Rust doesn’t have a stable ABI, the plugins should be built with the exact same Rust version than zenohd, and using for zenoh dependency the same version (or commit number) than ‘zenohd’. Otherwise, incompatibilities in memory mapping of shared types between zenohd and the library can lead to a "SIGSEV" crash.

In order to build the zenoh bridge for DDS you need first to install the following dependencies:

  • Rust. If you already have the Rust toolchain installed, make sure it is up-to-date with:
  $ rustup update
  
  • On Linux, make sure the llvm and clang development packages are installed:
    • on Debians do: sudo apt install llvm-dev libclang-dev

File truncated at 100 lines see the full file

CONTRIBUTING

Contributing to Eclipse zenoh

Thanks for your interest in this project.

Project description

Eclipse zenoh provides is a stack designed to

  1. minimize network overhead,
  2. support extremely constrained devices,
  3. supports devices with low duty-cycle by allowing the negotiation of data exchange modes and schedules,
  4. provide a rich set of abstraction for distributing, querying and storing data along the entire system, and
  5. provide extremely low latency and high throughput.
  • https://projects.eclipse.org/projects/iot.zenoh

Developer resources

Information regarding source code management, builds, coding standards, and more.

  • https://projects.eclipse.org/projects/iot.zenoh/developer

The project maintains the following source code repositories

  • https://github.com/eclipse-zenoh

Eclipse Contributor Agreement

Before your contribution can be accepted by the project team contributors must electronically sign the Eclipse Contributor Agreement (ECA).

  • http://www.eclipse.org/legal/ECA.php

Commits that are provided by non-committers must have a Signed-off-by field in the footer indicating that the author is aware of the terms by which the contribution has been provided to the project. The non-committer must additionally have an Eclipse Foundation account and must have a signed Eclipse Contributor Agreement (ECA) on file.

For more information, please see the Eclipse Committer Handbook: https://www.eclipse.org/projects/handbook/#resources-commit

Contact

Contact the project developers via the project’s “dev” list.

  • https://accounts.eclipse.org/mailing-list/zenoh-dev

Or via the Discord server.

  • https://discord.gg/vSDSpqnbkm
# Contributing to Eclipse zenoh Thanks for your interest in this project. ## Project description Eclipse zenoh provides is a stack designed to 1. minimize network overhead, 2. support extremely constrained devices, 3. supports devices with low duty-cycle by allowing the negotiation of data exchange modes and schedules, 4. provide a rich set of abstraction for distributing, querying and storing data along the entire system, and 5. provide extremely low latency and high throughput. * https://projects.eclipse.org/projects/iot.zenoh ## Developer resources Information regarding source code management, builds, coding standards, and more. * https://projects.eclipse.org/projects/iot.zenoh/developer The project maintains the following source code repositories * https://github.com/eclipse-zenoh ## Eclipse Contributor Agreement Before your contribution can be accepted by the project team contributors must electronically sign the Eclipse Contributor Agreement (ECA). * http://www.eclipse.org/legal/ECA.php Commits that are provided by non-committers must have a Signed-off-by field in the footer indicating that the author is aware of the terms by which the contribution has been provided to the project. The non-committer must additionally have an Eclipse Foundation account and must have a signed Eclipse Contributor Agreement (ECA) on file. For more information, please see the Eclipse Committer Handbook: https://www.eclipse.org/projects/handbook/#resources-commit ## Contact Contact the project developers via the project's "dev" list. * https://accounts.eclipse.org/mailing-list/zenoh-dev Or via the Discord server. * https://discord.gg/vSDSpqnbkm
Repo symbol

zenoh_bridge_dds repository

Repo symbol

zenoh_bridge_dds repository

Repo symbol

zenoh_bridge_dds repository

Repo symbol

zenoh_bridge_dds repository

Repo symbol

zenoh_bridge_dds repository

Repo symbol

zenoh_bridge_dds repository

Repo symbol

zenoh_bridge_dds repository