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 Distribution

iceoryx2-0.9.0.tar.gz (881.9 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.9.0-cp314-cp314t-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.14tWindows x86-64

iceoryx2-0.9.0-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.0-cp314-cp314t-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

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

Uploaded CPython 3.8+Windows x86-64

iceoryx2-0.9.0-cp38-abi3-manylinux_2_34_x86_64.whl (1.5 MB view details)

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

iceoryx2-0.9.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.9.0.tar.gz.

File metadata

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

File hashes

Hashes for iceoryx2-0.9.0.tar.gz
Algorithm Hash digest
SHA256 1499c9173dd25f51e849d64d4504593386f1e7985e1ced60ec68e792202a249d
MD5 2a23005d0ff84174e47da5b4c746e6d2
BLAKE2b-256 1a8472d8b72760ac54225317fe8f96d8b8e4c8e43879bcb7baa573061e20778b

See more details on using hashes here.

File details

Details for the file iceoryx2-0.9.0-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: iceoryx2-0.9.0-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.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 1d9527149fbf35daf1a3d84276dea3659f89d98f59fa3ae9d54eb910277a4c3f
MD5 8e978aa66e0cbc5a7ffa756a7e59d453
BLAKE2b-256 74c732d58ef5d7e24dd8710ce19500efbe119549005dff488e8bbf56d9535081

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for iceoryx2-0.9.0-cp314-cp314t-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 104c6adaa8d8b8336a44e6b2a2cc1bebc767d1759328428a1ac9039baef6fac9
MD5 d2637b521da6cbe32b00c498cdc30bc4
BLAKE2b-256 9c624d1a60cf65d23e7fc83d5005a5ac98b422e6f5992eb89ad9d3680ee10e49

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for iceoryx2-0.9.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 415ee357f82d4491513b1d242c23e2ea177dfa78e8cb59193735dd09c505da7c
MD5 2af4805cfea634ea983dd97667132825
BLAKE2b-256 b99b3168fef112fe8b98a24d008d112df67256a6b9293083d3e594d61217b9a5

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for iceoryx2-0.9.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 997a01cdb05e6b641e42601e5da5e18ebbc1e5bf62c653bfc622b4242e7e091b
MD5 e3f7f28d340820d5b7bf48432cce2357
BLAKE2b-256 b4b942d73695bf06ebe9a08028f4f6ce5497c00a1f17c7337ed1e38b3e0a9d87

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for iceoryx2-0.9.0-cp38-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 fa6e3479813ab7fac895558c25b68ab3fc0a8bed518670780d59bdbace253c80
MD5 88203a19f45a84582995bc55d1f4b9a1
BLAKE2b-256 c0b8bfc75bd8279780e15329e1124f5c8943d11bea17d5c825acb4bb0a712148

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for iceoryx2-0.9.0-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6d3e45da1bd5813ce035f82920afd0248ba235c3c02c580ed0889511e29f412c
MD5 6ed7d0bd8da35201d2fe9e7b9826f11e
BLAKE2b-256 252cbc23268b019e126cc2d581df2f161a519cdf09960c86e3f3552519a70e62

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