iceoryx2 C# Language Bindings
Open Source, Software Engineering, IPC, .NET

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