Skip to main content

Crate nros_rmw

Crate nros_rmw 

Source
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 support
  • alloc — Enable heap allocation

§Synchronization Backends

  • sync-spin — Use spin::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§

MessageInfo
Metadata about a received message