Crate rerun

source ·
Expand description

Rerun - log point clouds, images, etc and visualize them effortlessly

Add the rerun library to your crate with cargo add rerun.

There is also a rerun binary. The binary is required in order to stream log data over the networks, and to open our .rrd data files. If you need it, install the rerun binary with cargo install rerun.

There are many different ways of sending data to the Rerun Viewer depending on what you’re trying to achieve and whether the viewer is running in the same process as your code, in another process, or even as a separate web application.

Checkout SDK Operating Modes for an overview of what’s possible and how.

If you get stuck on anything, open an issue at https://github.com/rerun-io/rerun/issues. You can also ask questions on the Rerun Discord.

Using the rerun library

Logging
let mut rr_session = rerun::Session::init("my_app", true);

let points: Vec<rerun::components::Point3D> = positions();
let colors: Vec<rerun::components::ColorRGBA> = colors();
let image: image::DynamicImage = capture_image();

rerun::MsgSender::new("points")
    .with_component(&points)?
    .with_component(&colors)?
    .send(&mut rr_session)?;

rerun::MsgSender::new("image")
    .with_component(&[rerun::components::Tensor::from_image(image)?])?
    .send(&mut rr_session)?;

See Session and MsgSender for details.

Streaming

To stream log data to an awaiting rerun process, you can do this: Start rerun in a terminal by just running rerun.

Then do this:

let mut rr_session = rerun::Session::init("my_app", true);
rr_session.connect(rerun::default_server_addr());
Buffering

let mut rr_session = rerun::Session::init("my_app", true);
log_using(&mut rr_session);
rr_session.show();

Binary

The rerun binary is required in order to stream log data over the networks, and to open our .rrd data files.

The binary can act either as a server, a viewer, or both, depending on which options you use when you start it.

cargo install rerun
rerun --help

Feature flags

  • analytics (enabled by default) — Enable telemetry using our analytics SDK.

  • glam (enabled by default) — Add support for some math operations using glam. Only relevant if feature sdk is enabled.

  • image (enabled by default) — Integration with the image crate.

  • native_viewer (enabled by default) — Support a native viewer

  • server (enabled by default) — Support for running a HTTP server that listens to incoming log messages from a Rerun SDK.

  • sdk (enabled by default) — Embed the Rerun SDK and re-export all of its public symbols.

  • web_viewer — Support serving a web viewer over HTTP.

    Enabling this inflates the binary size quite a bit, since it embeds the viewer wasm.

Modules

Structs

  • The user-chosen name of the application doing the logging.
  • The name of an entity component, e.g. pos or color.
  • camera / "left" / points / #42
  • Facilitates building and sending component payloads with the Rerun SDK.
  • A unique id per recording (a stream of LogMsges).
  • This is the main object you need to create to use the Rerun SDK.

Enums

Traits

Functions