Skip to main content

Crate zerodds_amqp_endpoint

Crate zerodds_amqp_endpoint 

Source
Expand description

Crate zerodds-amqp-endpoint. Safety classification: STANDARD.

DDS-AMQP 1.0 bidirektionaler Endpoint-Stack — pure-Rust no_std + alloc (mit optionaler std-Loader-Schicht), forbid(unsafe_code). Implementiert die Protokoll-Schichten oberhalb des Wire-Codecs (zerodds-amqp-bridge):

Spec: OMG DDS-AMQP-1.0 (formal/2024-08-01) §2.1 (Endpoint-Profile), §6.1 (Direct-Embed-Topology), §7 (Mapping), §11 (Errors), Annex A (Configuration-Schema). OASIS AMQP-1.0 §2.4 (Connection-State), §2.5 (Session-State), §2.6 (Link-Lifecycle).

§Schichten-Position

Layer 5 — Bridges. Sitzt auf zerodds-amqp-bridge (Wire- Codec). Der TCP/TLS-Listener selbst lebt im Daemon-Crate tools/amqp-dds-endpoint/; diese Crate liefert die wire- unabhaengigen Protokoll-Schichten.

§Public API (Stand 1.0.0-rc.1)

  • sasl — SASL-Frame-Layer (PLAIN / ANONYMOUS / EXTERNAL) gemaess Spec §10.2.
  • session — Connection/Session-State-Machine + Idle-Timeout + DoS-Caps gemaess Spec §6.1.
  • link — Sender-/Receiver-Link-Acceptance + Settlement- Tracking + Disposition-Mapper-Wire-up (§7.4 + §7.7.3).
  • routing — Address-Resolution + Wildcard-Mapping gemaess Spec §7.3.
  • mapping — Body-Encoding-Mode-Mapping (Pass-Through / JSON / AMQP-Native) gemaess Spec §8.1.
  • properties — Application-Properties-Codec mit dds:operation / dds:instance-handle / dds:type-id.
  • dds_bridge — Trait-Surfaces (DdsOperationDispatcher + DispositionMapper) fuer Caller-DCPS-Bruecken.
  • management — Catalog + Audit-Producers + Metrics-Snapshots.
  • metrics — Mandatory-Metric-Hub.
  • security — Access-Control-Plugin-Surface + Governance.
  • coexistence — Multi-Bridge-Hop-Cap + Inbound-Decision.
  • rpc_correlation — Outstanding-Calls + Reply-Routing.
  • errors — Spec-§11 Error-Conditions als typisierte Errors.
  • limitsResourceLimits-Datenmodell aus Annex A.
  • keyhash — SHA-256 group-id-Hashing fuer §7.6.1.
  • annex_a — IDL-Spiegelung des Annex-A-Configuration-Schemas.
  • codegen_helpers — Helpers fuer den Annex-A-IDL-Codegen.
  • config_xml (Feature std) — XML-Configuration-Loader (§9.2).

§Was Caller-Layer ist

  • TCP-Listener-Operations und TLS-Termination — Daemon-Crate (tools/amqp-dds-endpoint/) mit tokio + rustls.
  • Discovery-Wire — DDS-SPDP/SEDP-Bridge zur DDS-Side lebt in crates/discovery/.
  • Live-Interop-Smoke gegen pika/qpid-proton/Azure-SB — Test-Harness im Daemon-Crate.

Re-exports§

pub use coexistence::BridgeId;
pub use coexistence::CoexistenceConfig;
pub use coexistence::DEFAULT_HOP_CAP;
pub use coexistence::InboundDecision;
pub use coexistence::MAX_HOP_CAP;
pub use coexistence::inspect_inbound;
pub use coexistence::stamp_outbound;
pub use dds_bridge::AcceptAllDispatcher;
pub use dds_bridge::DdsOperationDispatcher;
pub use dds_bridge::DispatchOutcome;
pub use dds_bridge::DispositionMapper;
pub use dds_bridge::DispositionState;
pub use dds_bridge::InboundOperation;
pub use dds_bridge::InstanceTrackingDispatcher;
pub use dds_bridge::NoopDispositionMapper;
pub use errors::AmqpError;
pub use errors::AmqpErrorCondition;
pub use errors::ErrorDescription;
pub use errors::ErrorScope;
pub use errors::access_denied;
pub use errors::instance_unknown;
pub use errors::map_mapping_error;
pub use errors::map_resolution_error;
pub use errors::register_missing_key;
pub use errors::resource_limit_exceeded;
pub use errors::unknown_dds_operation;
pub use errors::unsettled_state_not_implemented;
pub use limits::ResourceLimits;
pub use link::AttachDurabilityCheck;
pub use link::LinkRole;
pub use link::LinkSession;
pub use link::SettlementMode;
pub use link::TerminusDurability;
pub use link::check_attach_durability;
pub use management::AddressKind;
pub use management::AuditEvent;
pub use management::AuditProducer;
pub use management::CatalogDirection;
pub use management::CatalogEntry;
pub use management::CatalogProducer;
pub use management::CatalogTypeId;
pub use management::addresses;
pub use management::audit_event_sample;
pub use management::classify_address;
pub use management::metrics_snapshot;
pub use mapping::BodyEncodingMode;
pub use mapping::MappingError;
pub use mapping::encode_dds_to_amqp_body;
pub use mapping::parse_amqp_body;
pub use metrics::MANDATORY_METRIC_NAMES;
pub use metrics::MetricsHub;
pub use properties::DdsOperation;
pub use properties::ProducedProperties;
pub use properties::SampleHeader;
pub use properties::TypeIdCheck;
pub use properties::inspect_dds_type_id;
pub use properties::message_id;
pub use properties::produce_application_properties;
pub use properties::produce_properties;
pub use routing::AddressResolution;
pub use routing::AddressRouter;
pub use routing::ResolutionError;
pub use routing::effective_partitions;
pub use rpc_correlation::DEFAULT_MAX_OUTSTANDING_CALLS;
pub use rpc_correlation::DEFAULT_RPC_TIMEOUT_MS;
pub use rpc_correlation::IssueDecision;
pub use rpc_correlation::OutstandingCalls;
pub use rpc_correlation::ReplyDecision;
pub use rpc_correlation::ReplyProperties;
pub use rpc_correlation::RpcConfig;
pub use sasl::SaslCode;
pub use sasl::SaslMechanism;
pub use sasl::SaslOutcome;
pub use sasl::SaslState;
pub use security::AccessControlPlugin;
pub use security::AccessDecision;
pub use security::AccessOp;
pub use security::AllowAll;
pub use security::DataProtectionKind;
pub use security::DualIdentity;
pub use security::GovernanceDocument;
pub use security::GovernanceRule;
pub use security::IdentityToken;
pub use security::LinkGovernance;
pub use security::SaslSubject;
pub use security::StaticAllowList;
pub use security::build_identity_token;
pub use security::class_ids;
pub use session::ConnectionState;
pub use session::EndpointConfig;
pub use session::EndpointError;
pub use session::SessionState;
pub use session::advance_connection;

Modules§

annex_a
Annex-A IDL Configuration Schema (normativ).
backoff
Exponential-Backoff fuer Reconnect-Loops.
bridge_security
AMQP-Endpoint §7.x Bridge-Security-Wireup (separat von dem DDS-Security-Mapper in crate::security).
codegen_helpers
Codegen-Helpers fuer per-Language-PSM-Templates.
coexistence
Bridge-Coexistence Loop-Prevention.
config_xml
XML-Configuration-Loader fuer Annex-A-Strukturen.
daemon_runtime
Cross-Cutting Daemon-Runtime fuer den AMQP-Daemon.
dds_bridge
DDS-Bridge-Trait-Surface.
errors
AMQP-Error-Code-Mapping + Diagnostic-Description-Format.
keyhash
group-id Canonical-Key Producer.
limits
Resource-Limits + DoS-Caps fuer den DDS-AMQP-Endpoint.
link
Sender-/Receiver-Link-Acceptance + Settlement-Tracking.
management
Management-Surface Producer.
mapping
Body-Encoding-Mode-Mapping (Pass-Through / JSON / AMQP-Native).
metrics
Mandatory-Metrics-Counter-Hub.
properties
Properties + Application-Properties Producer.
qos_translation
§6 — DDS-QoS → AMQP-Behavior-Translation.
routing
Address-Resolution + Wildcard-Routing.
rpc_correlation
RPC-Aware Correlation + Reply Validation.
sasl
SASL-Frame-Layer fuer den AMQP-Endpoint.
security
DDS-Security-Bridge fuer den AMQP-Endpoint.
session
Connection/Session-State-Machine fuer den DDS-AMQP-Endpoint.