Skip to main content

zerodds_rtps/
lib.rs

1// SPDX-License-Identifier: Apache-2.0
2// Copyright 2026 ZeroDDS Contributors
3//! Writer/Reader state machines, RTPS submessages, fragmentation.
4//!
5//! Crate `zerodds-rtps`. Safety classification: **SAFE**.
6//! Siehe `docs/architecture/02_architecture.md §3` und
7//! `docs/architecture/04_safety_by_architecture.md §2`.
8//!
9//! RTPS-Wire-Types + Header (W1). Submessages
10//! (DATA/HEARTBEAT/ACKNACK/GAP) folgen in W2; Transport-Trait + UDP-
11//! Impl in W3; Best-Effort-Writer + E2E in W4. Siehe
12//! `.planning/wp-0.5-rtps-prototyp/PLAN.md`.
13
14#![no_std]
15#![forbid(unsafe_code)]
16#![warn(missing_docs)]
17
18#[cfg(feature = "alloc")]
19extern crate alloc;
20
21#[cfg(feature = "std")]
22extern crate std;
23
24#[cfg(feature = "alloc")]
25pub mod datagram;
26pub mod endpoint_security_info;
27pub mod error;
28#[cfg(feature = "alloc")]
29pub mod fragment_assembler;
30#[cfg(feature = "alloc")]
31pub mod group_digest;
32pub mod header;
33#[cfg(feature = "alloc")]
34pub mod header_extension;
35#[cfg(feature = "alloc")]
36pub mod history_cache;
37#[cfg(feature = "alloc")]
38pub mod inline_qos;
39#[cfg(feature = "alloc")]
40pub mod message_builder;
41#[cfg(feature = "metrics")]
42pub mod metrics;
43#[cfg(feature = "alloc")]
44pub mod parameter_list;
45#[cfg(feature = "alloc")]
46pub mod participant_data;
47#[cfg(feature = "alloc")]
48pub mod participant_message_data;
49pub mod participant_security_info;
50#[cfg(feature = "alloc")]
51pub mod property_list;
52#[cfg(feature = "alloc")]
53pub mod publication_data;
54#[cfg(feature = "alloc")]
55pub mod qos_bridge;
56#[cfg(feature = "alloc")]
57pub mod reader;
58#[cfg(feature = "alloc")]
59pub mod reader_proxy;
60#[cfg(feature = "alloc")]
61pub mod receiver_state;
62#[cfg(feature = "alloc")]
63pub mod reliable_reader;
64#[cfg(feature = "alloc")]
65pub mod reliable_stateless_writer;
66#[cfg(feature = "alloc")]
67pub mod reliable_writer;
68pub mod security_algo_info;
69pub mod submessage_header;
70#[cfg(feature = "alloc")]
71pub mod submessages;
72#[cfg(feature = "alloc")]
73pub mod subscription_data;
74pub mod wire_types;
75#[cfg(feature = "alloc")]
76pub mod writer;
77#[cfg(feature = "alloc")]
78pub mod writer_proxy;
79
80pub use error::WireError;
81pub use header::{RTPS_MAGIC, RtpsHeader};
82pub use submessage_header::{FLAG_E_LITTLE_ENDIAN, SubmessageHeader, SubmessageId};
83pub use wire_types::{
84    EntityId, EntityKind, Guid, GuidPrefix, Locator, LocatorKind, ProtocolVersion, SequenceNumber,
85    VendorId,
86};