Vergleichsstand: 2026-05

Features & Vendor-Vergleich

Acht thematische Tabellen, geordnet nach OMG-Profile (Lite / Full / Micro), dann Sprach-Bindings, Bridges, CORBA-Coexistence, Standalone-Spec-Stacks und Build-Extras. Pro Zeile ein Spec-Anker; die Belegspalte verweist auf die Audit-Doku im Source-Repository.

Legende. ✓ vollständig implementiert in produktiver Release. ◐ partiell, Premium-Tier, Preview oder externer Service. ✗ nicht implementiert. ? aus offizieller Vendor-Doku nicht verifizierbar.

1 · Core DDS — Lite Profile

Mandatory-Baseline nach OMG-DDS 1.4 §2.2 + DDSI-RTPS 2.5: Wire-Format, Discovery, Reliable / Best-Effort, mandatory QoS (Reliability, History, Volatile + Transient-Local Durability).

Feature ZeroDDS Cyclone 11 Fast-DDS OSS Fast-DDS Pro RTI Connext 7 OpenDDS 3.34 dust-dds OpenSplice CE 6.9ᴼ
DCPS API DDS 1.4 §2.2.2✓¹✓✓✓✓✓◐✓
RTPS-2.5 Wire-Format DDSI-RTPS §8✓²✓✓✓✓✓✓◐
SPDP Discovery DDSI-RTPS §8.5.3✓²✓✓✓✓✓✓✓
SEDP Discovery DDSI-RTPS §8.5.4✓²✓✓✓✓✓✓✓
Reliable Protocol DDSI-RTPS §8.4.2✓²✓✓✓✓✓✓✓
Best-Effort DDSI-RTPS §8.4.7✓²✓✓✓✓✓✓✓
Fragmentation (DATA_FRAG) DDSI-RTPS §8.3.7.3✓²✓✓✓✓✓✓✓
QoS — Reliability DDS §2.2.3.14✓✓✓✓✓✓✓✓
QoS — History DDS §2.2.3.18✓✓✓✓✓✓✓✓
QoS — Durability Volatile DDS §2.2.3.4✓✓✓✓✓✓✓✓
QoS — Durability Transient-Local DDS §2.2.3.4✓✓✓✓✓✓◐✓

¹ dds-dcps-1.4: 100 done / 0 partial / 0 open / 2 n/a · 557 Tests grün.

² ddsi-rtps-2.5: 121 done / 0 partial / 0 open / 3 n/a · 626 Tests grün.

ᴼ OpenSplice CE 6.9.210323, Quellbaum ADLINK-IST/opensplice: Der DDSI2-Dienst spricht RTPS 2.1 (src/services/ddsi2e/core/q_protocol.h:152-153), daher ◐ bei RTPS 2.5; SPDP und SEDP in q_ddsi_discovery.c, HEARTBEAT in q_transmit.c, DATA_FRAG in q_receive.c; C-API src/api/dcps/sac/include/dds_dcps.h. Gegen ZeroDDS gemessen mit OMG dds-rtps (Reliability, Durability, Ownership, Deadline, Content-Filter, FinalInstanceState): 9 von 9 Fällen in beiden Richtungen.

2 · Full Profile — Extensions

Über das Mandatory-Set hinaus: alle 22 Standard-QoS-Policies, XTypes 1.3 voller Type-System-Stack, DDS-Security 1.2, DDS-RPC 1.0, DLRL.

2.1 Erweiterte QoS-Policies

Policy ZeroDDS Cyclone Fast-DDS OSS Fast-DDS Pro RTI Connext OpenDDS dust-dds OpenSplice CE 6.9ᴼ
Deadline DDS §2.2.3.7✓✓✓✓✓✓✗✓
Lifespan DDS §2.2.3.16✓✓✓✓✓✓✗✓
Liveliness DDS §2.2.3.11✓✓✓✓✓✓✗✓
Ownership Shared/Exclusive DDS §2.2.3.23✓✓✓✓✓✓✓✓
Partition DDS §2.2.3.13✓✓✓✓✓✓✗✓
Content-Filter Topic DDS §2.2.4.6✓✓✓✓✓✓✗✓
Time-Based Filter DDS §2.2.3.12✓✓✓✓✓✓✗✓
Destination Order DDS §2.2.3.18✓✓✓✓✓✓✗✓
ResourceLimits DDS §2.2.3.19✓✓✓✓✓✓◐✓
Durability — Transient (Service) DDS §2.2.3.4✓¹✗✗◐✓◐²✗✓
Durability — Persistent (Service) DDS §2.2.3.4✓¹✗✗◐✓◐²✗✓

¹ ZeroDDS liefert Transient (in-memory) + Persistent (on-disk, übersteht Neustart) über den eingebauten DurabilityService; Late-Joiner-Replay ist e2e getestet. Cross-Vendor-Wire-Replay über RTPS ist eine OMG-weite Lücke — kein Vendor interoperiert Transient/Persistent über RTPS. Siehe Hard Truths.

² OpenDDS Transient/Persistent funktioniert nur über proprietären Transport, nicht über RTPS — Cross-Vendor-Interop limitiert auf Transient-Local.

ᴼ OpenSplice CE 6.9: alle Policies in der Kernel-Tabelle src/kernel/code/v_policy.c:38-66 (Deadline, Lifespan, Liveliness, Ownership und Strength, Partition, Pacing für Time-Based Filter, OrderBy für Destination Order, Resource); Content-Filter-Topic über DDS_DomainParticipant_create_contentfilteredtopic (dds_dcps.h:2146); Transient und Persistent über den Durability-Dienst (src/services/durability, XML-Speicher d__storeXML.h).

2.2 XTypes 1.3 — Type System

FeatureZeroDDSCycloneFast-DDS OSSFast-DDS ProRTI ConnextOpenDDSdust-ddsOpenSplice CE 6.9ᴼ
IDL 4.x Parser OMG IDL 4.2✓¹✓✓✓✓✓◐◐
TypeObjectV2 XTypes §7.3.1✓²✓◐◐◐³✓◐✗
TypeLookup Service XTypes §7.6.3.3✓²◐⁴✓✓◐³◐✗✗
DynamicType / DynamicData XTypes §7.5✓²⁵✓✓✓✓◐✗✗
Assignability Checks XTypes §7.6.3.2✓²✓✓✓✓✓◐✗
XCDR1 / Classic CDR (PL_CDR1) XTypes §7.4.2✓⁶✓✓✓✓✓◐◐
Big-Endian wire (emit + receive) XTypes §7.4.1✓⁷✓✓✓✓✓◐–
fixed<P,S> decimal member IDL 4.2 §7.4.1.4.4✓⁸✗✗✗✗✗✗–

¹ idl-4.2: 649 done / 4 partial / 0 open / 24 n/a (informativ).

² dds-xtypes-1.3: 82 done / 0 partial / 0 open / 1 n/a · 330 Tests grün.

³ RTI Connext Pro (bis 7.x): TypeLookup + TypeObjectV2 nach XTypes 1.3 für nächstes LTS angekündigt.

⁴ Cyclone DDS 0.9.0: Basic-XTypes ja, TypeLookup-Service kann Type-Dependencies nicht abrufen.

⁵ Reflektiver Codec (rc.4): zerodds-spy / zerodds-record folgen dem realen type_name eines Writers und dekodieren ohne Compile-Zeit-Typ — DynamicData ↔ CDR über XCDR1, XCDR2 und @mutable (PL_CDR2).

⁶ XCDR1 / Classic CDR (PL_CDR1) Encode + Decode in allen 7 PSMs (Rust / C++ / C / C# / Java / Python / TypeScript) — byte-identisch.

⁷ Big-Endian Senden + Empfangen end-to-end: alle Bindings, der C-API-Loan-Batch-Pfad, die WASM/WebSocket-Bridge und Durability (gespeicherte Samples behalten ihre Wire-Byte-Order).

⁸ fixed<P,S> über alle 7 PSMs, byte-identisch zum CORBA-BCD-Oracle. DDS-XTypes kennt kein TK_FIXED — Cyclone / Fast DDS / OpenDDS / RTI lehnen den Typ ab; ZeroDDS bridged ihn aus dem CORBA-Coexistence-Stack.

ᴼ OpenSplice CE 6.9 hat kein XTypes. idlpp liest IDL ohne Annotationen, Keys über #pragma keylist, keine Struct-Vererbung (gemessen); der DDSI2-Dienst kennt kein PID_TYPE_INFORMATION; die XTypes-Header der ersten ISO-C++-API (src/api/dcps/isocpp/include/dds/core/xtypes/) haben leere Implementierungsteile. XCDR1 ohne PL_CDR1 für Nutzertypen, da es keine @mutable-Typen gibt; Big-Endian und fixed sind nicht geprüft.

2.3 Security & RPC

FeatureZeroDDSCycloneFast-DDS OSSFast-DDS ProRTI ConnextOpenDDSdust-ddsOpenSplice CE 6.9ᴼ
DDS-Security 1.1✓¹✓✓✓✓✓✗✗
DDS-Security 1.2 (5 SPIs)✓¹³◐◐✓✓✗✗✗
DDS-RPC 1.0✓²✗✗✓✓✗✗✗

¹ dds-security-1.2: 50 done / 0 partial / 0 open / 3 n/a · 655 Tests grün, alle 5 Plugin-SPIs (Auth / AccessControl / Crypto / Logging / DataTagging) live.

² dds-rpc-1.0: 94 done / 0 partial / 0 open / 10 n/a.

³ FIPS (rc.4): das Krypto-Backend ist über die fips-Umbrella austauschbar — ring / aws-lc-rs / wolfcrypt — alle fünf Security-Crates wechseln mit einem einzigen Feature-Flag.

ᴼ OpenSplice CE 6.9 hat kein DDS-Security. DDSI2E verschlüsselt Netzwerkpartitionen mit einem eigenen Verfahren (src/services/ddsi2e/core/q_security.c, DDSI_INCLUDE_ENCRYPTION), ohne Authentifizierung und Zugriffskontrolle nach DDS-Security; PID_IDENTITY_TOKEN kommt im Quellbaum nicht vor. Keine DDS-RPC-Implementierung im Quellbaum.

2.4 Object-Model Layer

FeatureZeroDDSCycloneFast-DDS ProRTI ConnextOpenDDSOpenSplice
DLRL (Data-Local-Reconstruction) DLRL 1.2✓✗✗✗✗✗¹

¹ Vortex OpenSplice hatte DLRL bis V6.3 und hat es mit V6.4 entfernt (docs/html/changedV6.html im CE-Quellbaum); CE 6.9 enthält keine DLRL-Implementierung.

3 · Micro Profile — Resource-Constrained

Embedded / Microcontroller / Bare-Metal. Drei nicht-zusammenfallende Lager: full-DDS-mit-no_std (Connext Micro), DDS-XRCE-Client/Agent (eProsima Micro XRCE-DDS), Pure-Rust-DDS-no_std-Subset. ZeroDDS deckt alle drei auf einer Codebase.

FeatureZeroDDSConnext MicroDDS-XRCECycloneFast-DDS OSSdust-ddsOpenSplice CE 6.9ᴼ
no_std / bare metal Build✓¹◐✓✗✗✗✗
Static-Wiring / Allocation-Free✓✓✓✗✗✗–
Full DDS 1.4 DCPS API on embedded◐¹✓✗²✗✗✗◐
DDS-XRCE Client✓³✗✓✗✗✗✗
DDS-XRCE Agent✓³✗✓✗✗✗✗
Pure-Rust (kein C-FFI im Kern)✓✗✗✗✗✓✗
Apache 2.0 License✓✗✓✗✓✓✓

¹ ZeroDDS baut heute ein no_std-Subset (foundation / cdr / xrce-client) auf thumbv7em-none-eabihf in der Default-Pipeline; die vollständige DCPS-Micro-Edition für Embedded ist in Arbeit.

² Micro XRCE-DDS ist eigener OMG-Standard — Clients reden über einen Agent (Broker) mit der DDS-Global-Data-Space, nicht peer-to-peer.

³ dds-xrce-1.0: 82 done / 0 partial / 0 open / 13 n/a · 301 Tests grün.

ᴼ OpenSplice CE 6.9 braucht ein Betriebssystem: seine Abstraktionsschicht (src/abstraction/os/) hat Ziele für Linux, Windows, macOS, Solaris, AIX, VxWorks, INTEGRITY, QNX, PikeOS, LynxOS und RTEMS; gebaut und gemessen ist hier nur Linux x86_64, wo libddskernel.so 2 081 280 Byte groß ist. Kein DDS-XRCE und kein ROS-2-RMW im Quellbaum. Ob der Hot-Path ohne Allokation auskommt, ist nicht geprüft (–).

4 · Sprach-Bindings

LanguageZeroDDSCycloneFast-DDS OSSFast-DDS ProRTI ConnextOpenDDSdust-ddsRustDDSOpenSplice CE 6.9ᴼ
Rust (native)✓✗✗✗✗✗✓✓✗
C (FFI)✓¹✓◐✓✓✓✗✗✓
C++ (DDS-PSM-Cxx 1.0)✓²✓✓✓✓✓✗✗✓
Java (DDS-Java-PSM 1.0)✓³✓✗✗✓✓✗✗✓
Python✓¹✓✓✓✓✗✓✗✓
C# / .NET✓¹✗✗✗✓✗✗✗✓
TypeScript / JavaScript✓¹✗✗✗✗✗✗✗◐

¹ C, C#, Python und TypeScript sind ZeroDDS-Vendor-Bindings über das native zerodds-c-api-FFI (für diese Sprachen existiert kein formales OMG-PSM). C: direkt das c-api. C#: volles P/Invoke-DCPS-Runtime (Factory/Participant/Pub/Sub/Writer/Reader/QoS/Listener), NativeAOT-kompatibel, mit CDR-Source-Generators (crates/cs). Python: PyO3-DCPS-Runtime mit eigener Python-Testsuite (crates/py). TypeScript: koffi-N-API-Binding für Node mit voller DCPS-Oberfläche (crates/ts-node) plus ein Browser-WASM-XCDR-Codec (crates/ts-wasm).

² dds-psm-cxx-1.0: 103 done / 0 partial / 0 open / 19 n/a · 134 Tests grün.

³ dds-java-psm-1.0: 71 done / 0 partial / 0 open / 16 n/a · 251 Tests grün.

ᴼ OpenSplice CE 6.9, src/api/dcps/: C (sac, c99), C++ (klassisch und ISO isocpp2), Java (java, Java-5-PSM java5), Python (python, über Cython), C# (sacs, der Build braucht einen C#-Compiler), JavaScript für Node.js (nodejs, ohne TypeScript-Deklarationen, daher ◐).

5 · Bridges — Cross-Protocol Gateways

Native ZeroDDS-Bridges als eigene Crates, kein externer Sidecar. Die meisten DDS-Vendoren nutzen für Cross-Protocol externe Tools.

BridgeZeroDDSCycloneFast-DDS OSSFast-DDS ProRTI ConnextOpenDDSOpenSplice CE 6.9ᴼ
DDS ↔ AMQP 1.0✓✗✗✗◐¹✗✗
DDS ↔ MQTT 5.0✓✗✗✗◐¹✗✗
DDS ↔ CoAP (RFC 7252)✓✗✗✗✗✗✗
DDS ↔ WebSocket (RFC 6455)✓✗✗✗✗✗✗
DDS ↔ gRPC✓✗✗✗✗✗✗
DDS ↔ OPC-UA✓✗✗✗◐¹✗✗
DDS ↔ HTTP/REST (Web-Profile)✓✗✗✗◐✗✗
DDS ↔ Zenoh✓✓²✗✗✗✗✗
DDS ↔ ROS 2 (RMW)✓³✓✓✓✓✗✗
iceoryx same-host zero-copy✓⁴✓✗✗✗✗✗

¹ RTI Routing-Service — proprietäres Pluggable-Adapter-Tool, kein nativer First-Class-Bridge.

² Cyclone-zenoh-Bridge ist ZettaScale-extern (zenoh-plugin-dds).

³ Eigener Pure-Rust rmw_zerodds-Shim (zerodds-ros2-rmw + C-FFI-Wrapper); REP-2003/2004-Mapping, ROS-2-Live-Interop bidirektional.

⁴ iceoryx-Bridge (rc.4, cyclone-iox-Feature): ZeroDDS ↔ Cyclone DDS same-host Zero-Copy über iceoryx C++ (POSH); der PSMX-Chunk trägt die echte RTPS-GUID des Writers. Cyclone bringt iceoryx nativ mit.

ᴼ OpenSplice CE 6.9 enthält keinen dieser Gateways. Die Dienste im Quellbaum (src/services/) sind ddsi2/ddsi2e, durability, nwbridge (zwischen OpenSplice-eigenem Netzwerk und DDSI), cmsoap (SOAP für das Tuner-Werkzeug), cmagent und spliced. Ein ROS-2-RMW liegt nicht im CE-Baum; frühere externe RMW-Pakete sind hier nicht geprüft. iceoryx gibt es nicht; OpenSplice hat eine eigene Shared-Memory-Betriebsart (Standardkonfiguration ospl.xml).

6 · CORBA + DDS — Coexistence in beiden Welten

CORBA und DDS sind separate OMG-Welten mit Crossover. Niemand sonst liefert beide Welten nativ aus einer einzigen Codebase — ORB-Vendoren liefern kein DDS, DDS-Vendoren kein CORBA. Am nächsten kommt OCI (TAO + OpenDDS, gleicher Anbieter) oder TAO+CIAO mit externem DDS — aber ohne nativen Ein-Stack-Pfad. ZeroDDS hat beides als First-Class auf einer Rust-Codebase.

6.1 Pure-CORBA-Stack — ZeroDDS im ORB-Markt

ComponentZeroDDSTAO (ACE)omniORBMICOJacORB
GIOP / IIOP 3.x Wire CORBA 3.3 §15✓✓✓✓✓
POA CORBA 3.3 §11✓✓✓✓✓
COS Naming Service✓✓✓✓✓
CSIv2 (Security)✓✓✗✗✗
CORBA 3.3 IDL → C++ Annex A.1✓✓✓✓✗
CORBA 3.3 IDL → Java Annex A.4✓✗✗✗✓
Pure-Rust Implementation✓✗✗✗✗
Apache 2.0 License✓✓◐¹◐¹◐¹

¹ omniORB ist LGPL+BSD, MICO ist GPL/LGPL, JacORB ist LGPL — Open-Source aber nicht Apache 2.0; relevant für proprietären Bestand.

6.2 DDS+CORBA Coexistence — wer hat beide Welten

ComponentZeroDDSTAO + CIAORTI ConnextOpenDDSOpenSplice
CORBA 3.3 ORB native✓✓✗¹✗✗
DDS 1.4 native✓✗²✓✓✓⁶
CCM 4.0 (Component Container)✓✓✗✗✗
DDS4CCM (DDS-CCM-Bridge)✓◐³◐⁵◐⁵✗
DLRL (DDS-Object-Layer)✓✗✗✗✓
Eine Codebase / kein Multi-Vendor-Setup✓◐⁴✗¹n/an/a

¹ RTI Connext hat keinen nativen CORBA-ORB. Das historische RTI CORBA Compatibility Kit (IDL-Type-Sharing, kein Gateway) ist seit Connext 6.1.1 entfernt; CORBA kam über die OCI/TAO-Reseller-Partnerschaft, CCM/DDS4CCM via Remedy IT (CIAO/AXCIOMA).

² TAO selbst hat keinen DDS-Stack; die DDS-Seite kommt vom Schwesterprodukt OpenDDS (gleicher Anbieter OCI) oder via DDS4CCM aus RTI Connext / OpenDDS.

³ Die DDS4CCM-Referenzimplementierung lebt in CIAO (auf TAO), heute Legacy — Nachfolger AXCIOMA (Remedy IT). Unterstützte DDS-Backends: RTI Connext und OpenDDS.

⁴ TAO+CIAO ist OpenSource auf einer Codebasis, aber ohne nativen DDS-Stack — DDS via OpenDDS (OCI) oder RTI Connext.

⁵ Kein nativer DDS4CCM-Layer im Produkt selbst; verfügbar als unterstütztes DDS-Backend unter Remedy ITs CIAO/AXCIOMA-Connectoren.

⁶ Vortex OpenSplice (ZettaScale): Community-Edition seit ~2021 eingefroren — ZettaScale lenkt Nutzer auf Cyclone DDS.

Praxis: Für Bestände, die CORBA und DDS gleichzeitig sprechen (Telco, Finanzindustrie, Defense, Legacy-Telematik), deckt ZeroDDS beide Welten plus CCM/DDS4CCM aus einer einzigen Codebase ab — eine IDL-Quelle für beide Wire-Pfade, dieselben Sprach-PSMs, kein Multi-Vendor-Integrations-Setup.

7 · Foreign-Specs als Standalone-Crates

Jeder Bridge-Spec ist auch ohne den DDS-Stack nutzbar — als eigene Crate für jedes Rust-Projekt. Pure-Rust + DDS-Bridge nativ + Apache 2.0 sind die durchgängigen Differenzierer gegen die etablierten C-/Java-/Rust- Alternativen.

8 · Build, Distribution, Compliance

PropertyZeroDDSCycloneFast-DDS OSSFast-DDS ProRTI ConnextOpenDDSdust-ddsOpenSplice CE 6.9ᴼ
LicenseApache 2.0EPL 2.0Apache 2.0prop.prop.Apache 2.0Apache 2.0Apache 2.0
Pure-Rust (zero C-FFI im Kern)✓✗✗✗✗✗✓✗
forbid(unsafe_code) in the core✓n/an/an/an/an/a◐n/a
no_std build profile✓✗✗✗◐¹✗✗✗
Toolchain on a qualified channel✓²n/an/an/an/an/an/an/a
Safety-Cert (DO-178C / ISO 26262)✗³◐⁴✗✓✓✗✗✗
MSRV (Minimum Rust)1.97n/an/an/an/an/avariesn/a
Cross-Vendor-Wire-Interop✓⁵✓✓✓✓✓◐✓

¹ RTI Connext Micro ist separates Produkt für Embedded.

² Rust 1.97.1 = Ferrocene 26.08 (qualifiziert ISO 26262 ASIL-D / IEC 61508 SIL-3 / IEC 62304).

³ Workspace-Cert ist Partnerschafts-Pfad jenseits v1.x. Siehe Hard Truths.

⁴ ZettaScale Motionwise Cyclone DDS — kommerzielle Variante, ISO 26262 zertifiziert (Serien-Automobil).

⁵ Live-Interop-Job in der Default-CI gegen Cyclone DDS + Fast-DDS (SPDP-Discovery + XCDR2-Roundtrip).

ᴼ OpenSplice CE 6.9: Lizenz Apache 2.0 (LICENSE), in C und C++ geschrieben; eine Sicherheitszertifizierung nennen weder Quellbaum noch CE-Doku; Interop gegen ZeroDDS mit OMG dds-rtps gemessen (9 von 9 Fällen in beiden Richtungen).

Methodik

Vendor-Claims sind gegen offizielle Doku verifiziert (Stand 2026-05). ZeroDDS-Belege referenzieren die per-Spec-Audit-Doku im Source-Repository nach docs/spec-coverage/PROCESS.md: Item-für-Item gegen die OMG-PDF mit Spec-Zitat + Repo-Pfad + Test-Pfad + Status. Test-Counts stammen aus der Default-CI (cargo test --workspace).

Bei Evaluation: bitte gegen die jeweilige Vendor-Version selbst gegenprüfen. Roadmap-Releases vorrücken regelmäßig, insbesondere XTypes-1.3-TypeLookup und DDS-Security 1.2.