Skip to main content

IPC framework for AIRO.

Project description

airo-ipc

This repository contains utilities for inter-process communication (IPC) in Python, including shared memory communication and DDS communication. The DDS communication is based on the Cyclone DDS framework and the shared memory communication is built on the shared memory primitives of Python 3.8+.

Main features

  • Fast shared memory communication using Python 3.8+ shared memory primitives
  • DDS communication using the Cyclone DDS framework
  • Easy-to-install with one pip command

The main benefit of using shared memory communication is that it is faster than other forms of IPC, such as sockets or pipes, because it does not require copying data between processes. This is especially useful for high-throughput applications, such as real-time video processing. By using CycloneDDS, we can also communicate between processes on different machines, which is useful for distributed systems. Finally, this Python package is installable with a single command, making it easy to use in any Python project, unlike other IPC libraries that require complex installation procedures (including CycloneDDS with Iceoryx for shared memory communication), or ROS 2.

Please refer to the README file in airo_ipc/cyclone_shm for more information on the shared memory communication.

Installation

You can install the airo-ipc package by running:

pip install airo-ipc

or directly from git:

pip install git+https://github.com/airo-ugent/airo-ipc

or by cloning the repository and running:

pip install -e airo-ipc/

Usage

See the shared memory communication README for more information on how to use the shared memory communication utilities.

This repository also contains a framework package, which provides a high-level interface for using shared memory and DDS communication together. It is not required, but may facilitate common use cases. See the framework README for more information.

Examples

See the examples/ directory to learn how to use airo-ipc.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

airo_ipc-0.3.0.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

airo_ipc-0.3.0-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

Details for the file airo_ipc-0.3.0.tar.gz.

File metadata

  • Download URL: airo_ipc-0.3.0.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for airo_ipc-0.3.0.tar.gz
Algorithm Hash digest
SHA256 7cba7be7141e77ca9b0143e03d3282ac1078eaa85dd448d5f9173a2a56c43e2c
MD5 70b93e7157641ff298110540f13a70b4
BLAKE2b-256 cacd3a31b2f8d3e7aa88d5236db473de3c147292a86974b2dddb2115228105a2

See more details on using hashes here.

File details

Details for the file airo_ipc-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: airo_ipc-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 18.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for airo_ipc-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9b60b53e852bfcd28ee7cd8d2e7a5ebad4b8e44721910a4283cbabdf58a95933
MD5 7f5ab819179f239ad462e27f52750c34
BLAKE2b-256 b12916bd936591e26fb89630513ae05678b675e475007df632c9b287ac96e72a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page