Eclipse iceoryx™

Eclipse iceoryx™ provides an open-source zero-copy data plane for data-intensive and mission-critical systems. Its current generation, iceoryx2, provides efficient and deterministic zero-copy IPC between software components with predictable, low latency and minimal communication overhead. As a lean communication foundation, iceoryx2 can be integrated into existing architectures without imposing a specific data model, execution model, or ecosystem.

Modern systems in domains such as robotics, automotive, medical, avionics, and industrial automation continuously exchange large amounts of data between software components. Camera streams, LiDAR point clouds, and other sensor data can quickly result in several gigabytes per second of internal traffic. Conventional inter-process communication (IPC) mechanisms often scale poorly under these workloads because copies, serialization, system calls, and context switches consume resources that would otherwise be available to the application.

iceoryx2 addresses this with true zero-copy communication based on shared memory. Producers write data once, consumers access it directly, and only references are exchanged. This keeps communication latency independent of payload size and allows high-volume local data exchange to scale efficiently.

The project is designed for demanding embedded and real-time environments. iceoryx2 has no background threads, no system calls in the data delivery path, and uses a decentralized architecture without a central broker. It supports a variety of communication patterns including publish-subscribe, request-response, events, and a shared-memory blackboard. It is written in Rust, provides bindings for C, C++, Python, and C#, supports cross-language communication, and runs on a broad range of operating systems while scaling from bare metal to high-end workstations. Optional mechanisms support integration with IDLs and type systems, as well as communication beyond a single machine through tunnels and gateways with pluggable network protocols.

iceoryx2 is the current and recommended implementation of Eclipse iceoryx. It is the Rust-based successor to the original C++ implementation, now referred to as iceoryx classic. iceoryx classic has been superseded by iceoryx2 and is now in maintenance mode, with active development continuing on iceoryx2.

State
Mature
Latest Releases

From 2022-03-14 to 2021-04-15

Name Date Review
iceoryx classic 2.0.0 (Blueberry) 2022-03-14
iceoryx classic 1.0.0 (Almond) 2021-04-15
Licenses
Apache Software License 2.0

The content of this open source project is received and distributed under the license(s) listed above. Some source code and binaries may be distributed under different terms. Specific license information is provided in file headers and in NOTICE files distributed with the project's binaries.

Active Member Companies

Member companies supporting this project over the last three months.

    Is your logo missing?

    Contribution Activity
    Commits on this project (last 12 months)