Skip to main content

Lock-Free Zero-Copy Inter-process Communication

Project description

CI Codecov Examples FAQ Gitter Developer Meetup Roadmap

iceoryx2 - Zero-Copy Lock-Free IPC with a Rust Core

Introduction

Welcome to iceoryx2, the efficient, and ultra-low latency inter-process communication middleware. This library is designed to provide you with fast and reliable zero-copy and lock-free inter-process communication mechanisms.

So if you want to communicate efficiently between multiple processes or applications iceoryx2 is for you. With iceoryx2, you can:

  • Send huge amounts of data using a publish/subscribe, request/response, pipeline (planned) or blackboard pattern (planned), making it ideal for scenarios where large datasets need to be shared.
  • Exchange signals through events, enabling quick and reliable signaling between processes.

iceoryx2 is based on a service-oriented architecture (SOA) and facilitates seamless inter-process communication (IPC).

It is all about providing a seamless experience for inter-process communication, featuring versatile messaging patterns. Whether you're diving into publish-subscribe, events, request-response, or the promise of upcoming features like pipelines, and blackboard, iceoryx2 has you covered.

One of the features of iceoryx2 is its consistently low transmission latency regardless of payload size, ensuring a predictable and reliable communication experience.

iceoryx2's origins can be traced back to iceoryx. By overcoming past technical debts and refining the architecture, iceoryx2 enables the modularity we've always desired.

In the near future, iceoryx2 is poised to support at least the same feature set and platforms as iceoryx, ensuring a seamless transition and offering enhanced capabilities for your inter-process communication needs. So, if you're looking for lightning-fast, cross-platform communication that doesn't compromise on performance or modularity, iceoryx2 is your answer.

Feel free to join the Gitter Chat or the Developer Meetup if you want to have a chat with the developers of iceoryx.

Performance

Comparision Of Mechanisms

benchmark of different mechanism

Benchmark-System

  • CPU: Intel i7 13700h
  • OS: Linux 6.10.10-arch1-1 #1 SMP PREEMPT_DYNAMIC
  • Compiler:
    • rustc 1.81.0
    • gcc 14.2.1 20240910

Comparision Of Architectures

benchmark on different systems

Documentation

User Documentation

Contributor Documentation

API References

Supported Platforms

The support levels can be adjusted when required.

Operating System State Current Support Level Target Support Level
Android proof-of-concept[^1] - tier 1
Bare Metal proof-of-concept[^2] - tier 1
FreeBSD done tier 2 tier 1
FreeRTOS planned - tier 2
ThreadX planned - tier 2
iOS planned - tier 2
Linux (x86_64) done tier 2 tier 1
Linux (aarch64) done tier 2 tier 1
Linux (32-bit) done tier 2 tier 1
Mac OS done tier 2 tier 2
QNX 7.1 done tier 3 tier 1
QNX 8.0 done tier 3 tier 1
VxWorks proof-of-concept[^3] - tier 1
WatchOS planned - tier 2
Windows done tier 2 tier 2

[^1]: A proof-of-concept for Android platform support is available. Currently only local, inter-thread communication works. [^2]: A proof-of-concept with no_std bare-metal support is available. The event messaging-pattern does not yet work and the memory usage is not yet optimized. [^3]: A proof-of-concept for VxWorks platform support is available on this branch on the ekxide fork

  • tier 1 - All safety and security features are working.
  • tier 2 - Works with a restricted security and safety feature set.
  • tier 3 - Not tested in our CI, so may or may not compile and run.

[!NOTE] Some commercial operating systems require expensive licenses and the support for these platforms relies on funding for the license costs.

[!NOTE] Yocto recipes are available at meta-iceoryx2

Language Bindings

Language State
C / C++ done
Python done
Go planned
C# done[^4]
Java planned
Kotlin planned
Lua planned
Swift planned
Zig planned

[^4]: C# bindings are available in a separate repository. May not be up to date with main.

Commercial Support

ekxide IO GmbH
info@ekxide.io
  • commercial extensions and tooling
  • custom feature development
  • training and consulting
  • integration support
  • engineering services around the iceoryx ecosystem

Thanks To All Contributors

Thanks to everyone who has contributed to iceoryx2. Without their passion and dedication, the project wouldn't thrive. A list of people who have committed code can be found on github. However, contributions are not limited to code - testing the software, reporting bugs, and spreading the word about iceoryx2 are all equally valuable. A big thank you as well to those 'invisible' contributors who play a crucial role behind the scenes.

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

iceoryx2-0.8.0.tar.gz (819.8 kB view details)

Uploaded Source

Built Distributions

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

iceoryx2-0.8.0-cp38-abi3-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.8+Windows x86-64

iceoryx2-0.8.0-cp38-abi3-manylinux_2_34_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.34+ x86-64

iceoryx2-0.8.0-cp38-abi3-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

File details

Details for the file iceoryx2-0.8.0.tar.gz.

File metadata

  • Download URL: iceoryx2-0.8.0.tar.gz
  • Upload date:
  • Size: 819.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for iceoryx2-0.8.0.tar.gz
Algorithm Hash digest
SHA256 b081e1c831e4016eb37512dd0d6af5caf4b9c772b0fc30165eb7a43f8bf22671
MD5 0ee1dadfcd79c3b24981ecd8c95f06aa
BLAKE2b-256 1aed23fa230ee10249beea9ed116fe53d4c7af4765d34b5798ba72963026566c

See more details on using hashes here.

File details

Details for the file iceoryx2-0.8.0-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: iceoryx2-0.8.0-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.8+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for iceoryx2-0.8.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c52521856caed98086f4c83642a9358c083b387bb3f4ad55d6f9e24a12dc6e10
MD5 a242ee1fc04beead83bb7ff317d467cf
BLAKE2b-256 48157ad691f64e6e782dd8ddd69b5dc92d98b1ecf73f5b7da24ffbc9cd1def3b

See more details on using hashes here.

File details

Details for the file iceoryx2-0.8.0-cp38-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for iceoryx2-0.8.0-cp38-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 037f5b172d8b76720484b47ef9c9365dd12dee354758a62496f18f2c2d22261e
MD5 8a957af41e1ece5ce040290996a1fed9
BLAKE2b-256 0955bb7aab81a3956b6a03e4cae1114eaf17fc89b1a8e949c47600039a57da2c

See more details on using hashes here.

File details

Details for the file iceoryx2-0.8.0-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for iceoryx2-0.8.0-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8afca6b050f75fa004aa0e6b03496b4eead0d308a57d31d2366469e4586858b6
MD5 96fc3f1ccbcd1681ce0bf4d8854f4e9d
BLAKE2b-256 31a8b9c31c7c16d4b629a852c861d846f429e2033402f4179e90acbef37ebec3

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