Expand description
RMW (ROS Middleware) abstraction layer for nros.
This crate provides the middleware-agnostic transport traits that
backend crates (nros-rmw-zenoh, nros-rmw-xrce) implement.
Application code depends on these traits, not on a concrete backend,
so the transport can be swapped at compile time via Cargo features.
§Trait hierarchy
Rmw — top-level factory, creates Sessions
└─ Session — connection lifecycle, creates handles
├─ Publisher — publish serialised messages
├─ Subscriber — receive messages (polling or callback)
├─ ServiceServer — request/reply (server side)
└─ ServiceClient — request/reply (client side)See traits for the full trait definitions.
§Features
std— Enable standard library supportalloc— Enable heap allocation
§Synchronization Backends
sync-spin— Usespin::Mutex(default, works everywhere)sync-critical-section— Use critical sections (RTIC/Embassy compatible)
Re-exports§
pub use event::CountStatus;pub use event::DeadlineMissedStatus;pub use event::EventCallback;pub use event::EventKind;pub use event::EventPayload;pub use event::LivelinessChangedStatus;pub use event::MessageLostStatus;pub use event::payload_from_raw;pub use custom_transport::NROS_TRANSPORT_OPS_ABI_VERSION_V1;pub use custom_transport::NrosTransportOps;pub use custom_transport::peek_custom_transport;pub use custom_transport::set_custom_transport;pub use custom_transport::take_custom_transport;pub use type_descriptor::TypeDescriptorRegistrar;pub use type_descriptor::has_type_descriptor_registrar;pub use type_descriptor::register_type_descriptor;pub use type_descriptor::set_type_descriptor_registrar;pub use traits::ActionInfo;pub use traits::LocatorProtocol;pub use traits::Publisher;pub use traits::QosDurabilityPolicy;pub use traits::QosHistoryPolicy;pub use traits::QosLivelinessPolicy;pub use traits::QosOverride;pub use traits::QosOverrideRole;pub use traits::QosOverrideValue;pub use traits::QosPolicyMask;pub use traits::QosReliabilityPolicy;pub use traits::QosSettings;pub use traits::Rmw;pub use traits::RmwConfig;pub use traits::ServiceClientTrait;pub use traits::ServiceInfo;pub use traits::ServiceRequest;pub use traits::ServiceServerTrait;pub use traits::Session;pub use traits::SessionMode;pub use traits::Subscriber;pub use traits::TopicInfo;pub use traits::Transport;pub use traits::TransportConfig;pub use traits::TransportError;pub use traits::locator_protocol;pub use traits::validate_locator;
Modules§
- custom_
transport - Phase 115.A — runtime-pluggable custom transport vtable.
- event
- Status-event surface (Phase 108).
- sync
- Synchronization primitives abstraction
- traits
- Transport abstraction traits.
- type_
descriptor - Phase 248 (C2) — generic per-type descriptor registration seam.
Structs§
- Message
Info - Metadata about a received message