Skip to main content

isaac_sim_rs/
lib.rs

1// SPDX-License-Identifier: MPL-2.0
2#![cfg_attr(docsrs, feature(doc_cfg))]
3#![warn(missing_docs)]
4//! Rust SDK for NVIDIA Isaac Sim.
5//!
6//! Adapter selection happens at compile time via cargo features:
7//! - default: `arrow` only (pure Rust, no Isaac Sim required)
8//! - `dora`:  bridge + dora pub/sub adapter
9//! - `rerun`: bridge + rerun viewer adapter
10//! - `full`:  both adapters in one cdylib
11//!
12//! The `bridge` feature enables the bridge rlib but NOT the cdylib C++ shim.
13//! The C++ extension build passes `--features isaac-sim-bridge/cdylib` separately
14//! so that a `cargo add isaac-sim-rs -F bridge` on a laptop without Isaac Sim
15//! succeeds without requiring a C++ toolchain.
16//!
17//! See the workspace README for the full compatibility matrix.
18
19/// Pure-Rust Arrow schema and decoders for every sensor and actuator channel.
20#[cfg(feature = "arrow")]
21#[cfg_attr(docsrs, doc(cfg(feature = "arrow")))]
22pub use isaac_sim_arrow as arrow;
23
24/// Bridge consumer registry, channel markers, producer registry, and `SourceFilter`.
25#[cfg(feature = "bridge")]
26#[cfg_attr(docsrs, doc(cfg(feature = "bridge")))]
27pub use isaac_sim_bridge as bridge;
28
29/// Dora-rs publisher and subscriber adapter; see [`crate::dora::subscribe`] for receiver-side decoders.
30#[cfg(feature = "dora")]
31#[cfg_attr(docsrs, doc(cfg(feature = "dora")))]
32pub use isaac_sim_dora as dora;
33
34/// Rerun viewer adapter; see [`crate::rerun::Viewer`] for the builder API.
35#[cfg(feature = "rerun")]
36#[cfg_attr(docsrs, doc(cfg(feature = "rerun")))]
37pub use isaac_sim_rerun as rerun;