Rust API
The Rust user-facing surface lives in the nros umbrella crate. Generated by
rustdoc --no-deps; always reflects the current main branch.
API reference
nrosrustdoc — start here.
That single crate re-exports every type a user application needs:
Executor, Node, Publisher<M>, Subscription<M>, Service<S>,
Client<S>, ActionServer<A>, ActionClient<A>, Timer, GuardCondition,
plus the nros::prelude glob-import.
Where to start
- New to nano-ros? →
nros::prelude - Two-layer API (L1 polling vs L2 callback)? → Two-Layer API — concept page with the verb discipline and per-layer use cases.
- Executor-driven app? →
nros::Executor - Async/
spin_async? →nros::dds_async(re-exports of the async surface)
Generating locally
cargo doc --no-deps -p nros --open
Internals (porting only)
These crates are not part of the user API. They surface only when writing a custom RMW backend or porting to a new platform — see Custom RMW Backend / Custom Platform.
nros_rmw— RMW trait surface (porters)nros_platform_api— platform abstraction traits (porters)nros-rmw-zenoh— zenoh-pico backend internals