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

iceoryx2 C# Language Bindings

C#-Bindings für iceoryx2 Zero-Copy IPC - mein Beitrag zum eclipse-iceoryx Open-Source-Projekt.

Beschreibung

iceoryx2 ermöglicht Inter-Process Communication ohne Kopieroperationen. Ich habe die C#-Bindings entwickelt und zum eclipse-iceoryx Projekt beigetragen. Die Bindings wurden mit dem iceoryx2 v0.8.0 Release eingeführt und leben in einem eigenen Repository.

Die Architektur ist in Schichten aufgebaut:

  • Native FFI Layer: Direkte Calls zum Rust-Core via P/Invoke
  • SafeHandle Management: Memory-safe Ressourcenverwaltung via IDisposable
  • High-Level API: Idiomatische C#-Interfaces für .NET-Entwickler

Unterstützte Kommunikationsmuster:

  • Publish-Subscribe
  • Event API
  • Request-Response

Die Transferzeit ist konstant - unabhängig von der Payload-Größe. 10 Bytes brauchen genauso lang wie 10 Megabytes. Datentypen nutzen [StructLayout(LayoutKind.Sequential)] für Cross-Process-Kompatibilität.

Die Bindings bieten async/await Support mit CancellationToken-Integration, Service Discovery und Node Monitoring. Cross-Platform: Linux, macOS, Windows.

GitHub: https://github.com/eclipse-iceoryx/iceoryx2-csharp

Tech-Stack

  • C#
  • .NET
  • Rust FFI
  • P/Invoke
  • SafeHandle
  • Shared Memory
  • Linux
  • macOS
  • Windows
  • GitHub Actions