zerodds-inspect-endpoint

ZeroDDS inspect endpoint — feature-gated tap hooks for the external PDE Reality Inspector (zerodds-pde).

Part of ZeroDDS. Safety classification: STANDARD.

Status

Debug-tool crate, fully #[cfg(feature = "inspect")]-gated and #![forbid(unsafe_code)]. In a production build (feature off) the entire tap mechanism is compiled out — no hot-path branch (R-099, C-021).

Architecture

  • tap — trait + registry for tap hooks on DCPS/RTPS/Transport.
  • frame — wire frame for the side channel.
  • authcert.d loader for X.509 PEM certs (R-100..R-104).
  • server (feature inspect) — broadcast hook + inspect server.

Security invariants

  • Ghost inject (R-110): inject functions are separate API paths and publish directly into the DDS production data path, without going through the tap hooks. Production taps do not see the inject.
  • Idle-branch elision: tap-hook calls in dcps/rtps/transport are hidden behind #[cfg(feature = "inspect")]. Without the feature there is no branch in the hot path.

Usage

[dependencies]
zerodds-inspect-endpoint = { version = "1", features = ["inspect"] }

Default is OFF — inspect must be enabled explicitly so the tap hooks and the server path get compiled.

Tests

cargo test -p zerodds-inspect-endpoint --features inspect

See also

zerodds-inspect-endpoint

ZeroDDS Inspect-Endpoint — feature-gated Tap-Hooks fuer den externen PDE Reality Inspector (zerodds-pde).

Part of ZeroDDS. Safety classification: STANDARD.

Status

Debug-Tool-Crate, vollstaendig #[cfg(feature = "inspect")]-gated und #![forbid(unsafe_code)]. Im Production-Build (Feature aus) faellt der gesamte Tap-Mechanismus weg — kein Hot-Path-Branch (R-099, C-021).

Architektur

  • tap — Trait + Registry fuer Tap-Hooks an DCPS/RTPS/Transport.
  • frame — Wire-Frame fuer den Side-Channel.
  • authcert.d-Loader fuer X.509-PEM-Certs (R-100..R-104).
  • server (feature inspect) — Broadcast-Hook + Inspect-Server.

Sicherheits-Invarianten

  • Ghost-Inject (R-110): Inject-Funktionen sind separate API-Pfade und publishen direkt in den DDS-Production-Datenpfad, ohne durch die Tap-Hooks zu laufen. Production-Taps sehen den Inject nicht.
  • Idle-Branch-Elision: Tap-Hook-Aufrufe in dcps/rtps/transport sind hinter #[cfg(feature = "inspect")] versteckt. Ohne Feature kein Branch im Hot-Path.

Verwendung

[dependencies]
zerodds-inspect-endpoint = { version = "1", features = ["inspect"] }

Default ist OFF — inspect muss explizit aktiviert werden, damit die Tap-Hooks und der Server-Pfad uebersetzt werden.

Tests

cargo test -p zerodds-inspect-endpoint --features inspect

Siehe auch