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
pipcommand
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ff0996758ddfee1dd1a26fe66a8125c1fdee625068db39f08c7dd605f7fbbe1
|
|
| MD5 |
fcaaaf87036680889a7852a118494cab
|
|
| BLAKE2b-256 |
39212f1ab11bac38e81c200728b9f106f0e3cbea00889661dbf0a675799e1eb6
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6371bb3a38d2e0c0f97646218ae9dc2696b81c42c5949f1ace47b574c3df71a
|
|
| MD5 |
d4dbae63770c91f2b05a14bd8a3b2e44
|
|
| BLAKE2b-256 |
52314fbc237eca6073c40c34eaee2002f9ef358e5867490846011de1bf51bef9
|