Rapidly and dynamically develop code using Python with Connext DDS


Introduction

The RTI Python API is a software productivity tool designed to help DDS users with Python programming skills to accelerate development of their systems. It provides a development environment that allows users to continue using the simplicity of the Python language with the advanced features of Connext DDS to build scalable, distributed applications.

RTI Python API runs on Linux, macOS, and Windows and can be used with Python 3.x or Python 2.7.

The Python API provides a more comprehensive API than RTI Connector for Python. While Connector provides a quick and easy way to write Python applications that publish and subscribe to the RTI Connext DDS databus, it lacks advanced features that full Connext DDS APIs provide, such as dynamic creation of entities and types, mutable QoS, status updates and more.

Features

  • Full API modeled after the RTI Modern C++ API
    • Provides additional functionality not available in RTI Connector
      • Create entities in code
      • QoS configuration/mutability in code
      • User accessible Listeners and WaitSets with support for all Condition types
      • Standard content filtered topics and custom content filters, with the ability to modify filter parameters at runtime.
      • Access to built-in DDS discovery topics
  • Compatible with existing RTI shared library plugins1
  • Automatic conversion to/from Python types interacting with the native libraries, including
      • Python sequence types (list, array, etc.) to DDS native sequences
      • Python datetime to DDS Time objects
      • DDS Optional<T> fields return/accept object or Python’s None
      • Python dictionaries to DDS DynamicData samples
      • etc.
  • Alternative to existing blocking methods via Python asyncio compatible methods2 
  • Support for RTI Distributed Logger and integration with Python logging module.
  • Ability to prototype a system in the RTI Python Connector, then use the Python API to continue development
  • Works with DynamicData and built-in types (XML or in code)
  • Offers a dictionary-like API for DynamicData in addition to the normal API, providing a Pythonic approach to accessing and modifying the fields of user data types.

1 Packaging and using plugins may depend on the operating system and Python version

2 Only compatible with Python version 3.7 or later

Specifications

RTI Labs Project Type: Language Tool

Maturity Level: Prototype

Support: This is an experimental RTI product. As such, we only offer support through the RTI Community Forum where fellow users and RTI engineers can help you. If you encounter an issue while using RTI Python API, you can also open a ticket in the issues section of the repository. Additionally, along with your questions, we encourage you to post your feedback on the RTI Community Forum. 

Intent: Python API is slated for continued development. 

Feedback: RTI welcomes feedback via the RTI Community Forum.

Platform Support:

  • Operating Systems: Linux (gcc 4.8.2+), Windows 10 (VS2015+), macOS. 
  • Python 2.7.x, Python 3.7, Python 3.8

Product Compatibility: RTI Connext DDS versions 5.3.1, 6.0.x

Download

Access the RTI Python API for Connext DDS code here

Documentation

Python API documentation is located in the RTI Community GitHub repository.

Related

If you're interested in using RTI Python API, we think you'll enjoy the following content.

Join the RTI Community

Post your questions, search through our Knowledge Base, and get the most from your DDS experience by joining the RTI Community!