https://github.com/airo-ugent/airo-ipc

AIRO's inter process communication framework

https://github.com/airo-ugent/airo-ipc

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.7%) to scientific vocabulary
Last synced: 6 months ago · JSON representation

Repository

AIRO's inter process communication framework

Basic Info
  • Host: GitHub
  • Owner: airo-ugent
  • License: mit
  • Language: Python
  • Default Branch: master
  • Size: 105 KB
Statistics
  • Stars: 0
  • Watchers: 3
  • Forks: 0
  • Open Issues: 2
  • Releases: 0
Created about 1 year ago · Last pushed 8 months ago
Metadata Files
Readme License

README.md

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:

bash pip install airo-ipc

or directly from git:

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

or by cloning the repository and running:

bash 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.

Owner

  • Name: AIRO UGent
  • Login: airo-ugent
  • Kind: organization

GitHub Events

Total
  • Issues event: 9
  • Issue comment event: 2
  • Push event: 8
  • Pull request event: 2
  • Create event: 1
Last Year
  • Issues event: 9
  • Issue comment event: 2
  • Push event: 8
  • Pull request event: 2
  • Create event: 1

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 24 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 5
  • Total maintainers: 1
pypi.org: airo-ipc

IPC framework for AIRO.

  • Versions: 5
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 24 Last month
Rankings
Dependent packages count: 9.3%
Average: 31.0%
Dependent repos count: 52.6%
Maintainers (1)
Last synced: 7 months ago

Dependencies

pyproject.toml pypi
  • cyclonedds >=0.10.5
  • loguru >=0.7.2
  • numpy *
setup.py pypi
uv.lock pypi
  • airo-ipc 0.0.1
  • click 8.1.8
  • colorama 0.4.6
  • cyclonedds 0.10.5
  • loguru 0.7.3
  • markdown-it-py 3.0.0
  • mdurl 0.1.2
  • numpy 2.0.2
  • numpy 2.2.4
  • pygments 2.19.1
  • rich 13.9.4
  • rich-click 1.8.8
  • typing-extensions 4.13.0
  • win32-setctime 1.2.0