A true zero-copy inter-process-communication (IPC) middleware for high-performance data transfer between processes.
Eclipse iceoryx is an inter-process-communication (IPC) middleware that enables high-performance data transfer between processes using a true zero-copy, shared memory approach. It solves the problem of transferring large data volumes with constant latency, making it ideal for real-time systems like autonomous driving and robotics.
Developers building performance-critical systems in automotive, robotics, or game development who need efficient IPC with minimal latency.
Developers choose iceoryx for its true zero-copy architecture, which eliminates data copying overhead, and its integration with major frameworks like ROS 2 and AUTOSAR Adaptive, ensuring reliability in demanding environments.
Eclipse iceoryx™ - true zero-copy inter-process-communication
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
iceoryx uses true zero-copy shared memory to transfer data without copying, ensuring constant latency regardless of payload size, as emphasized in its core philosophy for real-time systems.
It supports multiple operating systems including Linux, macOS, QNX, FreeBSD, and Windows 10, making it versatile for embedded and desktop applications in various domains.
The project integrates with major frameworks like ROS 2, Eclipse eCAL, and AUTOSAR Adaptive, allowing it to serve as a high-performance transport layer without reinventing the wheel.
Offers both low-level 'plumbing' APIs for core IPC and high-level 'porcelain' APIs, providing flexibility for direct use or integration into larger systems, as described in the README.
On macOS, Windows, and FreeBSD, iceoryx does not support access rights for shared memory, limiting security, and command-line parsing on Windows is incomplete, as noted in the platform support table.
The low-level C++ and C APIs are termed 'plumbing' and can be daunting for direct use, often requiring additional abstraction layers or framework integration for practical applications.
The README points to a Rust-based next-gen implementation (iceoryx2), which may indicate future shifts or current limitations, potentially causing uncertainty for long-term C++ projects.