
iceoryx2 C# Language Bindings
C# bindings for iceoryx2 zero-copy IPC middleware. Part of the eclipse-iceoryx project.
Description
iceoryx2 moves data between processes without copying it. I built the C# bindings to bring this capability to .NET applications. The bindings were introduced with the iceoryx2 v0.8.0 release and live in a separate repository under the eclipse-iceoryx project.
The implementation follows a layered architecture:
- Native FFI layer: Direct calls to the Rust core via P/Invoke
- SafeHandle management: Memory-safe resource handling through IDisposable
- High-level API: Idiomatic C# interfaces for .NET developers
Communication patterns supported:
- Publish-Subscribe
- Event API
- Request-Response
Data transfer time is constant regardless of payload size. A 10-byte message takes the same time as a 10-megabyte message. Types use [StructLayout(LayoutKind.Sequential)] for cross-process compatibility.
The bindings include async/await support with CancellationToken integration, service discovery, and node monitoring. They run on Linux, macOS, and Windows.
GitHub: https://github.com/eclipse-iceoryx/iceoryx2-csharp
Used Tools and Technologies
- C#
- .NET
- Rust FFI
- P/Invoke
- SafeHandle
- Shared Memory
- Linux
- macOS
- Windows
- GitHub Actions




