Fast-DDS-python
Fast-DDS-python copied to clipboard
Python bindings for Fast DDS. Looking for commercial support? Contact [email protected]
Python binding for Fast DDS
[!WARNING] In preparation for v2.0.0 (bindings for Fast DDS v3.0.0), Fast DDS Python's master branch is undergoing major changes entailing API breaks. Until Fast DDS Python v2.0.0 is released, it is strongly advisable to use the latest stable version, v1.4.1.
eProsima Fast DDS Python is a Python binding for the eProsima Fast DDS C++ library.
This is a work in progress, but ultimately the goal is having the complete Fast DDS API available in Python.
Two packages are available in this repository: the proper Python binding, fastdds_python, and the examples, fastdds_python_examples.
Installation guide
This tutorial shows how to build Fast DDS Python using colcon, a command line tool to build sets of software packages.
To do so, colcon and vcstool need to be installed:
pip install -U colcon-common-extensions vcstool
Dependencies
Fast DDS Python depends on Fast DDS and Fast CDR. For simplicity, this tutorial will build these dependencies alongside the binding itself. More advanced users can build or link to this packages separately.
Install Fast DDS dependencies running:
sudo apt update
sudo apt install -y \
libasio-dev \
libtinyxml2-dev
Additionally, Fast DDS Python also depends on SWIG 4.0 and python3-dev. Install these dependencies running:
sudo apt update
sudo apt install -y \
swig \
libpython3-dev
Build and install
# Change directory to the location where the colcon workspace will be created
cd <path_to_ws>
# Create workspace directory
mkdir -p fastdds_python_ws/src
cd fastdds_python_ws
# Get workspace setup file
wget https://raw.githubusercontent.com/eProsima/Fast-DDS-python/main/fastdds_python.repos
# Download repositories
vcs import src < fastdds_python.repos
# Build the workspace
colcon build
Please, refer to colcon documentation for more information, such as building only one of the packages.
Python example
Fast DDS documentation includes a first publisher-subscriber application using Python. Please refer to this section for more information.