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 mitdds: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.limits—ResourceLimits-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(Featurestd) — XML-Configuration-Loader (§9.2).
§Was Caller-Layer ist
- TCP-Listener-Operations und TLS-Termination —
Daemon-Crate (
tools/amqp-dds-endpoint/) mittokio+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.