Metadata-Version: 2.1
Name: pyopendds
Version: 0.2.0
Summary: Python Bindings for OpenDDS
Home-page: https://github.com/oci-labs/pyopendds
Author: Fred Hornsey
Author-email: hornseyf@objectcomputing.com
License: MIT
Keywords: opendds dds
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: C++
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Communications
Classifier: Topic :: Software Development :: Code Generators
Classifier: Topic :: Software Development :: Libraries
Description-Content-Type: text/markdown
License-File: LICENSE

# PyOpenDDS

[![](https://github.com/oci-labs/pyopendds/workflows/pyopendds/badge.svg)](
  https://github.com/oci-labs/pyopendds/actions?query=workflow%3Apyopendds)

PyOpenDDS is a framework for using
[OpenDDS](https://github.com/objectcomputing/OpenDDS) from Python. It has the
goal of providing the standard full DDS API in OpenDDS in a Pythonic form.

This project is still a work in progress though. It currently only supports
what is necessary for `tests/basic_test` and little else. See the GitHub issues
for the current status of the limitations.

## Requirements

- Tested on Linux, macOS, and Windows
- CPython >= 3.7
  - This uses the C API of CPython, so other Python implementations like PyPy
    are not offically supported.
  - If building Python from source, make sure to run the configure script with
    `--enable-shared`. PyOpenDDS doesn't currently support building with the
    statically-linkable Python library.
- OpenDDS >= 3.16
- CMake >= 3.12
- A compiler that supports C++14 or later.

## Building PyOpenDDS and Running the Basic Test

Once `$DDS_ROOT/setenv.sh` has been sourced or the equivalent, run the commands
below in this directory.

```sh
# Build and Install PyOpenDDS
pip install .

# Build Basic Test
cd tests/basic_test
mkdir build
cd build
cmake ..
make

# Build and Install Basic Test Python Type Support
itl2py -o basic_output basic_idl opendds_generated/basic.itl
# If using OpenDDS 3.19 or before, then just specify basic.itl
cd basic_output
pip install .

# Run Basic Test
cd ../..
bash run_test.sh
```


