See your robot, live.
Drop-in ROS 2 bridge for Rerun. Stream topics to the viewer in seconds — no ROS 2 runtime required.
Newv0.11.0 release notesEverything the bridge does, out of the box.
Zero ROS 2 runtime
Pure Rust binary. Speaks DDS and Zenoh natively — no colcon, no ament, no sourcing.
Built-in type mappings
Images, pointclouds, TF, poses, laser scans, odometry, and more — mapped out of the box.
Custom message mappings
Map any ROS 2 type to Rerun archetypes via JSON5 config. No code, no recompilation.
URDF + TF tree
Automatic robot model visualization from /robot_description with full transform tree.
Per-topic diagnostics
Hz, bandwidth, drops, and latency monitoring for every subscribed topic.
WebSocket API
Stream live ROS 2 data to any client. JSON and CDR formats, ZSTD compression, auth, and rate limiting.
Drop it in. Nothing else changes.
Read the docsSingle binary, minimal setup
No colcon, no workspace. Download a single Rust binary and run it. Rewire is not a ROS 2 node — it observes the network directly, so it never interferes with your ROS graph. Source your workspace only for URDF mesh resolution.
Automatic subscribe and unsubscribe
Rewire automatically subscribes to new topics as they appear and unsubscribes when they go away, keeping the ROS graph clean. No stale subscriptions, no manual management.
One graph, whatever it is speaking
rewire topics lists what is live right now: the type each topic carries, and whether it arrived over DDS, Zenoh, or both. Rewire speaks both at once, so a graph split across two transports still reads as one graph.
One command says whether it will work
rewire doctor reads your config, checks the ROS 2 environment, and walks every topic on the graph — the type it carries, whether a converter exists for it, and whether the nodes publishing it are answering. Run it before anything else.
From the graph to the viewer.
Rewire subscribes over DDS or Zenoh, converts each message to a Rerun archetype, and streams it through a relay — on one machine or across the network.
A plain rewire record starts the relay in-process and connects the bundled viewer through it. The bridge never talks to a viewer directly.
ROS 2 graph
DDS
Fast DDS · Cyclone
Zenoh
Native wire protocol
In-process
Bridge
rewire record
Relay
rewire serve
Rewire Viewer
Bundled
Rerun viewer
Stock, or browser
.rrd file
Archive on disk
Standard ROS 2 messages are built in. Custom ones are resolved over the wire. Nothing to source, nothing to build.
Automatic type resolution
Pose uncertainty renders as a shape you can see, not a number you have to imagine.
Covariance
A recorded bag runs through the same converters as the live bridge — at recorded pace, or as fast as the machine allows.
Bag playback
Live diagnostics, in the same recording as the data.
Run with --diagnostics and every subscribed topic reports its rate, bandwidth, drops and latency into the viewer as Rerun Scalars — next to the pointclouds and images they describe, not in a separate tool.
29.8
Publish rate
12.0
Bandwidth
0
Drops
0.2
Latency
Fast, and out of your way.
60×
Faster than rclpy and rclcpp to discover topics
0%
Friction for developers. No code to modify, nothing to rebuild
<30 ms
Chunk processing, for a healthy viewer and low latency
Every detail you need for real work.
The long tail of things that turn a demo into a tool you leave running.
74 types, zero config.
Every common ROS 2 message type maps to a Rerun archetype automatically.
Mapping docssensor_msgs16
| Image | Image / DepthImage |
| CompressedImageexperimental | EncodedImage, EncodedDepthImage, VideoStream |
| CameraInfoexperimental | Pinhole |
| PointCloud2 | Points3D |
| LaserScan | Points3D |
| Imu | Scalars |
| Joy | Scalars |
| JointState | Scalars |
| NavSatFix | GeoPoints |
| MagneticField | Arrows3D |
| BatteryState | Scalars |
| Temperature | Scalars |
| FluidPressure | Scalars |
| Illuminance | Scalars |
| RelativeHumidity | Scalars |
| Range | Scalars |
geometry_msgs13
| PoseStamped | InstancePoses3D, Scalars |
| PoseArray | Points3D |
| PoseWithCovarianceStamped | InstancePoses3D, Ellipsoids3D, Scalars |
| PointStamped | Points3D |
| PolygonStamped | LineStrips3D |
| Twist / TwistStamped | Scalars |
| TwistWithCovariance(Stamped) | Scalars |
| AccelStamped | Scalars |
| AccelWithCovarianceStamped | Scalars |
| WrenchStamped | Scalars |
| Vector3Stamped | Scalars |
| QuaternionStamped | Scalars |
| VelocityStamped | Scalars |
nav_msgs4
| Odometry | InstancePoses3D, Ellipsoids3D, Scalars |
| Path | LineStrips3D |
| OccupancyGrid | GridMap |
| GridCells | Points3D |
nav2_msgs1
| VoxelGridexperimental | VoxelGridMap |
vision_msgs2
| Detection2DArray | Boxes2D |
| Detection3DArray | Boxes3D |
visualization_msgs3
| Marker | Arrows3D, Boxes3D, Mesh3D, … |
| MarkerArray | (same as Marker) |
| ImageMarker | Points2D, LineStrips2D |
std_msgs4
| Float32 / Float64 | Scalars |
| Int8–Int64 / UInt8–UInt64 | Scalars |
| Bool / Byte / Char | Scalars |
| String | TextDocument / Asset3D |
example_interfaces4
| Float32 / Float64 | Scalars |
| Int8–Int64 / UInt8–UInt64 | Scalars |
| Bool / Byte / Char | Scalars |
| String | TextDocument / Asset3D |
tf2_msgs1
| TFMessage | Transform3D, CoordinateFrame |
geographic_msgs3
| GeoPoseStamped | GeoPoints, Scalars |
| GeoPoseWithCovarianceStamped | GeoPoints, Scalars |
| GeoPath | GeoLineStrings |
rcl_interfaces1
| Log | TextLog |
What's next.
Edge deployment
Run Rewire on resource-constrained devices like Jetson and Raspberry Pi.
Rerun Data Platform
Stream directly to the cloud for fleet-wide analytics and long-term storage.
More type mappings
Expanding coverage based on community feedback and real-world use cases.
Windows support
Bringing Rewire to Windows for cross-platform development workflows.
Get Rewire today.
Questions, feedback, or a type mapping you need? Join the discussion on GitHub.
Join the discussion on GitHubWindows
Native builds are on the way, for cross-platform development workflows.
Install script
macOS and Linux. Detects your OS and architecture, then downloads the matching build.
Package managers
macOS & Linux · x86_64 and aarch64 · v0.11.0