Title: Rewire — stream ROS 2 topics to Rerun with zero ROS 2 build dependencies
Hi all,
I’ve been working on Rewire, a standalone bridge that streams live ROS 2 topics to
Rerun for real-time visualization. I wanted to share it here and get feedback from the
community.
The problem it solves
Setting up visualization tooling in ROS 2 often means pulling in dependencies,
building packages, and dealing with middleware configuration. I wanted something that just works — point it at a DDS/Zenoh network and start visualizing.
How it works
Rewire is a single Rust binary that speaks DDS and Zenoh wire protocols directly. It’s not a ROS 2 node —
it doesn’t join the ROS graph or require any ROS 2 installation. It acts as a passive observer.
curl -fsSL https://rewire.run/install.sh | sh
rewire record -a # subscribe to all topics
What’s supported
- 53 type mappings across
sensor_msgs,geometry_msgs,nav_msgs,tf2_msgs,vision_msgs,std_msgs, andrcl_interfaces— including Image, PointCloud2, LaserScan, TF, Odometry, Detection2D/3DArray, and more. - Custom message mappings — map any ROS 2 message type to Rerun archetypes via a JSON5 config file, no recompilation.
- URDF visualization — loads from
/robot_description, resolves meshes viaAMENT_PREFIX_PATH. - Full TF tree — static + dynamic transforms with coordinate frame visualization
- Per-topic diagnostics — Hz, bandwidth, drops, and latency rendered as Rerun Scalars.
- Topic filtering — glob-based include/exclude patterns.
Platforms
Linux (x86_64, aarch64) and macOS (Intel + Apple Silicon).
Install options
- Install script:
curl -fsSL https://rewire.run/install.sh | sh - prefix.dev:
pixi global install -c rewire rewire - APT repository for Debian/Ubuntu
I’d love to hear your thoughts — especially around which message types or workflows you’d want supported next. If you run into issues, feedback is very welcome.
Website: https://rewire.run