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, 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

Comparison 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

Comparison 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
RTEMS planned - tier 2
Redox OS planned - tier 2
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 done
C++ done
C# done[^4]
Dart planned
Go planned
Java planned
Kotlin planned
Lua planned
Python done
Swift planned
Typescript 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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

iceoryx2-0.9.1-cp314-cp314t-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.14tWindows x86-64

iceoryx2-0.9.1-cp314-cp314t-manylinux_2_34_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.34+ x86-64

iceoryx2-0.9.1-cp314-cp314t-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

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

Uploaded CPython 3.8+Windows x86-64

iceoryx2-0.9.1-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.9.1-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.9.1-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: iceoryx2-0.9.1-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for iceoryx2-0.9.1-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 c34773b6da2d33ad6eb1dede332a9cf3f1d7cd1f988c1cfbf75ab3da92adc119
MD5 4175689db5eec3bbb58cb150d18d2635
BLAKE2b-256 081a298da45f4538a504ca9406161e59c889be762756b0292abb0af1753adabe

See more details on using hashes here.

File details

Details for the file iceoryx2-0.9.1-cp314-cp314t-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for iceoryx2-0.9.1-cp314-cp314t-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 25519f8f9da50ca90b2465f462d4e4ec368125f097b02b66f4fe3eba1809a4a7
MD5 47d209e5449d0493b5e95f6f9014f07a
BLAKE2b-256 c37eb215eb76c4bd79c69cb07d17f9aaf29ccd4fbd0baee846c97d92f0db2428

See more details on using hashes here.

File details

Details for the file iceoryx2-0.9.1-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for iceoryx2-0.9.1-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b9a7144c5fa6b3f4198a0321a629b882e9952d722c01017d09f376caac8b03c3
MD5 a5c17e0dc31e148fcdac4e81e399fd2a
BLAKE2b-256 b182c3c538573e0a0bded0fd047574b5829c7fa529c25520a6208922fa928ca9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: iceoryx2-0.9.1-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.14.4

File hashes

Hashes for iceoryx2-0.9.1-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 88e5565b171d9c3f92e33cd0c58058f717fb9d60248a026eb638369f947f6493
MD5 299a88ed516ad15d4cbd5630ce986901
BLAKE2b-256 5e579974c550488a5792d195ef75a9772184e22b755e1bc3bbdd0784e896856a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for iceoryx2-0.9.1-cp38-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 dc0a6b5047cd2363458e916d8f53cf6b4219b30135eec8f7917a8c4cf80c9d57
MD5 2f7348e06b8a17c98357c7e2321f7bb3
BLAKE2b-256 15d00d1220e29790a354474565dde83956df48d914d408c749ba599811aa1a52

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for iceoryx2-0.9.1-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4771ead96b4cb023a2e7f3856cd6266e34488afa6bcc8336fb1f171fc65aa5a4
MD5 ce63a48660e4eec6fe10a6eb3e5ff587
BLAKE2b-256 600d0a4ec544e9ad0a9470cb7f0d6ea1a177274ff7b9e660ea643b9fed2eee92

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