The iceoryx maintainers strongly recommend using iceoryx2 for new projects and porting existing ones to iceoryx2. It is the team’s main focus and has already surpassed iceoryx classic in robustness and features.
iceoryx classic
iceoryx2
Continue with iceoryx classic
Continue with iceoryx2
Written in
C++
Rust
Has true zero-copy data transport
yes
yes
Requires a central daemon
yes
no
Messaging pattern
publish-subscribe
request-response
publish-subscribe
request-response
blackboard
pipeline (planned)
Notification mechanisms
Platforms
Linux
Windows
macOS
FreeBSD
QNX (no CI target)
FreeRTOS (no CI target)
Linux
Windows
macOS
FreeBSD
QNX (no CI target)
VxWorks (POC)
Android (POC)
FreeRTOS (planned)
ThreadX (planned)
and more
Language bindings
C and C++
C#
Python
Go (planned)
and more
Host-to-Host communication
via DDS tunnel
via Zenoh tunnel
Gateway support
DDS gateway (partial)
custom gateways
Zenoh (first iterations as tunnel)
DDS (planned)
gRPC (planned)
custom gateways
Extensibility
hard due to non-modular design
modular design allows custom extension, e.g. GPUs and Hypervisors
Fast
Flexible
Dependable
True zero-copy shared memory communication Message transfers with a latency of less than 1 µs Made to handle GBytes/sec data transfers
Support of various operating systems, communication patterns and APIs Service discovery enables the design of dynamic systems Easy to integrate into frameworks like ROS 2 or AUTOSAR Adaptive
Developed according to modern safety standards Implementation based on static memory and lock-free algorithms Huge C++ library with safe STL implementations
Commercial support
info@ekxide.io
commercial extensions and tooling
custom feature development
training and consulting
integration support
engineering services around the iceoryx ecosystem