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
We implement the WebDDS object model (Spec §7) and the REST PSM (Spec §8.3) as a pure-Rust no_std+alloc library:
WebDDS::Rootsingleton +Application+Client+AccessController+DomainParticipant(§7.3 object model).ReturnStatuswith all spec codes (§7.3.1 + §8.3.2 mapping to HTTP status).RestRouteparser for all URI patterns from Spec §8.3.1 Tab 4 + §8.3.3 Tab 5 (all 30+ routes with parameter extraction).RepresentationXML element-name registry (Spec §8.3.4 Tab 6).HeadersHTTP request/response header set (Spec §8.3.5 Tab 7+8).SessionIdauthenticated-session tracking (§7.3.1.1).
§What is not covered
- HTTP server implementation — caller layer (typically
axum/hyper); this crate provides routing tables + status mapping, the caller binds to the HTTP stack. - XML body serialization — caller layer with the
crates/xml/loader + DDS-XTYPES type-definition reader; the XML element-name registry here provides the wire tags. - WebSocket push for DataReader notifications — see
crates/websocket-bridge/; the caller wires it via a listener callback fromcrates/dcps/. - SOAP/WSDL-Platform (Spec §8.4) —
n/a(REST ist mandatory, SOAP is optional + rarely used).
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 to the 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
SessionIdAuthentifizierte Session — Spec §7.3.1.1.- status
ReturnStatus+ HTTP-Status-Mapping — Spec §7.3 + §8.3.2.