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.2.1.tar.gz (13.2 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.2.1-py3-none-any.whl (17.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: airo_ipc-0.2.1.tar.gz
  • Upload date:
  • Size: 13.2 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.2.1.tar.gz
Algorithm Hash digest
SHA256 3ff0996758ddfee1dd1a26fe66a8125c1fdee625068db39f08c7dd605f7fbbe1
MD5 fcaaaf87036680889a7852a118494cab
BLAKE2b-256 39212f1ab11bac38e81c200728b9f106f0e3cbea00889661dbf0a675799e1eb6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: airo_ipc-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 17.7 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.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b6371bb3a38d2e0c0f97646218ae9dc2696b81c42c5949f1ace47b574c3df71a
MD5 d4dbae63770c91f2b05a14bd8a3b2e44
BLAKE2b-256 52314fbc237eca6073c40c34eaee2002f9ef358e5867490846011de1bf51bef9

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