Skip to main content

Crate zerodds_web

Crate zerodds_web 

Source
Expand description

OMG DDS-WEB 1.0 — Web-Enabled DDS Object Model + REST PSM.

Crate zerodds-web. Safety classification: STANDARD. Spec formal/2014-12-01 (docs/standards/cache/omg/zerodds-web-1.0.pdf).

§Scope

Wir implementieren das WebDDS-Object-Model (Spec §7) und das REST-PSM (Spec §8.3) als pure-Rust no_std+alloc Library:

  • WebDDS::Root Singleton + Application + Client + AccessController + DomainParticipant (§7.3 Object-Model).
  • ReturnStatus mit allen Spec-Codes (§7.3.1 + §8.3.2 Mapping zu HTTP-Status).
  • RestRoute Parser fuer alle URI-Patterns aus Spec §8.3.1 Tab 4 + §8.3.3 Tab 5 (alle 30+ Routes mit Parameter-Extraktion).
  • Representation XML-Element-Name-Registry (Spec §8.3.4 Tab 6).
  • Headers HTTP-Request/Response-Header-Set (Spec §8.3.5 Tab 7+8).
  • SessionId Authenticated-Session-Tracking (§7.3.1.1).

§Was nicht abgedeckt ist

  • HTTP-Server-Implementation — Caller-Layer (typisch axum/hyper); diese Crate liefert Routing-Tabellen + Status- Mapping, der Caller bindet an HTTP-Stack.
  • XML-Body-Serialization — Caller-Layer mit crates/xml/- Loader + DDS-XTYPES-Type-Definition-Reader; das XML-Element- Name-Registry hier liefert die Wire-Tags.
  • WebSocket-Push fuer DataReader-Notifications — siehe crates/websocket-bridge/; Caller wired das via Listener- Callback aus crates/dcps/.
  • SOAP/WSDL-Platform (Spec §8.4) — n/a (REST ist mandatory, SOAP ist optional + selten verwendet).

Re-exports§

pub use access_control::Decision;
pub use access_control::Operation;
pub use access_control::Permissions;
pub use access_control::Rule;
pub use bridge::BackendError;
pub use bridge::BackendResult;
pub use bridge::DdsBackend;
pub use bridge::enforce;
pub use headers::REQUEST_API_KEY;
pub use headers::RequestHeaders;
pub use headers::ResponseHeaders;
pub use model::Application;
pub use model::Client;
pub use model::DomainParticipant;
pub use model::WebDdsRoot;
pub use representation::ContentType;
pub use representation::RepresentationKind;
pub use representation::element_name;
pub use rest::REST_PREFIX;
pub use rest::RestMethod;
pub use rest::RestRoute;
pub use rest::parse_route;
pub use sample_selector::BoolOp;
pub use sample_selector::CompareOp;
pub use sample_selector::FilterExpression;
pub use sample_selector::InstanceStateMatch;
pub use sample_selector::Literal;
pub use sample_selector::MetadataExpression;
pub use sample_selector::ParseError as SampleSelectorParseError;
pub use sample_selector::SampleSelector;
pub use sample_selector::SampleStateMatch;
pub use sample_selector::ViewStateMatch;
pub use sample_selector::parse_sample_selector;
pub use session::SessionId;
pub use status::ReturnStatus;
pub use status::http_status_for;

Modules§

access_control
DDS-WEB Access Control Decision Engine — Spec §7.3.
bridge
DDS-WEB Bridge zur DDS-DCPS Public API — Spec §7.4.
headers
HTTP-Headers — Spec §8.3.5 Tab 7 + Tab 8.
model
WebDDS Object Model — Spec §7.
representation
XML Object-Representation Tags — Spec §8.3.4 Tab 6.
rest
REST-PSM URI-Routing — Spec §8.3.1 + §8.3.3.
sample_selector
DDS-WEB Sample Selector BNF Parser — Spec §7.4.8.
session
SessionId Authentifizierte Session — Spec §7.3.1.1.
status
ReturnStatus + HTTP-Status-Mapping — Spec §7.3 + §8.3.2.