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-concept1 - tier 1
Bare Metal proof-of-concept2 - 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-concept3 - tier 1
WatchOS planned - tier 2
Windows done tier 2 tier 2
  • 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# done4
Dart planned
Go planned
Java planned
Kotlin planned
Lua planned
Python done
Swift planned
Typescript planned
Zig planned

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.

  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

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

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.2.tar.gz (883.5 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.2-cp314-cp314t-win_amd64.whl (1.3 MB view details)

Uploaded CPython 3.14tWindows x86-64

iceoryx2-0.9.2-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.2-cp314-cp314t-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

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

Uploaded CPython 3.8+Windows x86-64

iceoryx2-0.9.2-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.2-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.2.tar.gz.

File metadata

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

File hashes

Hashes for iceoryx2-0.9.2.tar.gz
Algorithm Hash digest
SHA256 4c89a9cbcea4a899b02951b1c5dbc004a5ac345d346f47d86e3aaa0f9fd383c4
MD5 61ce6d31718daf0023a8570e82250de7
BLAKE2b-256 1863ed7949f8eccdd6648220629e282cf28bbc9edaf07cf9d1acaddb7d1ed648

See more details on using hashes here.

File details

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

File metadata

  • Download URL: iceoryx2-0.9.2-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.5

File hashes

Hashes for iceoryx2-0.9.2-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 4043d71e787c779253dcfadfc862dd52adf82fe6641db9b7c9939830dcefff26
MD5 132ec973b3c16ef80dfdf836686700c2
BLAKE2b-256 a68b37f0c7c6c2a2270929b5701c4ae247800af595795b931a403eec5e15839e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for iceoryx2-0.9.2-cp314-cp314t-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ea4d0b6dbf3ab507d27c8ccfde225a970665ae1b9a8b3e45f2e31107cc9f438b
MD5 59df394c206f29e6590868247e4968c6
BLAKE2b-256 ea35c0cb80842a8b169d9d89fc2d9d6877e597e1074d0bcab7869b539ea3efb6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for iceoryx2-0.9.2-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a7c1aa152a2be7e70f8e8eebbdfb5ef5b29ab70111fd85f82e27b39af5c31ca4
MD5 df4a8374293897b47ec89aaabe55dc09
BLAKE2b-256 3d09beb7b9d1eeb7fb2403ac209dc7e33efa5efe5033153f5e23b6dd48731f66

See more details on using hashes here.

File details

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

File metadata

  • Download URL: iceoryx2-0.9.2-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.5

File hashes

Hashes for iceoryx2-0.9.2-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 bb7ed91f8f60ce5288d3acdbda5731410925ba0f6f0f75d0f7e27a2ec6585756
MD5 0fbb2ac70160d5175e6f8b99d1fdfa06
BLAKE2b-256 040cd831d732dc809c71b69fa4a85b0177f6722e5fb30dfb3e9714d3e77009b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for iceoryx2-0.9.2-cp38-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 23f47fbe27beaca0416e14da85d896a2154738a374fe63f8b65fa597ad60bfbb
MD5 81c48a402d90e903b731eac17c2fab34
BLAKE2b-256 a4a4a30c6c4e865f72ef5532bbe99c64ea770610a38b3254d11d0f3790ca5e0f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for iceoryx2-0.9.2-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1f1b93a7b72e9f2f00ff5295c301e4d67ae6754d27855e213beeefd71e2fb887
MD5 25155fffc4a69b7546fce5375c48d269
BLAKE2b-256 bd80a2545db48d43c82a4fefb9e834f33e1b8bf2ae8b9e185b687c9097ed8d13

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