Introducing swift-ros2: a native Swift client library for ROS 2, now open source
Pure-Swift ROS 2 library powers 10K+ devs, now open-sourced with dual transport.
The team behind the Conduit iOS app has released swift-ros2 as a standalone open-source Swift package under Apache 2.0. Since Conduit's debut in January, it peaked at #4 in the App Store's Developer Tools category and has been used by over 10,000 ROS 2 developers. The overwhelming feedback was that the real value lay in the Swift-side ROS 2 wire stack, not just the app itself. This release extracts, hardens, and extends that stack with a full CycloneDDS transport alongside the original Zenoh one, and ports it to Linux—so any Swift project on Apple platforms or Ubuntu can speak ROS 2 natively without dragging in rcl/rclcpp.
swift-ros2 is a pure-Swift client library that publishes and subscribes directly at the wire level—no bridge, no RCL, no Python, no C++ glue. It supports dual transports (Zenoh and CycloneDDS) with a single API, and covers Humble, Jazzy, Kilted, and Rolling distros via built-in wire codecs. The library includes a pure-Swift XCDR v1 codec verified against golden-byte fixtures from real ROS 2 traffic, 20 built-in message types, and custom message support via the ROS2Message protocol. Its Swift-native API uses async/await, AsyncStream subscriptions, Sendable conformance, and structured concurrency. The roadmap includes services, actions, a code generator for .msg/.srv/.action files, and expanded message catalog support.
- Pure-Swift ROS 2 client library with Zenoh and CycloneDDS dual transport support
- Covers Humble, Jazzy, Kilted, and Rolling distros; runs on iOS 16+, macOS 13+, visionOS 1.0+, and Ubuntu 22.04/24.04
- Includes 20 built-in message types, custom message protocol, and async/await Swift-native API
Why It Matters
Enables Apple and Linux devs to build native ROS 2 apps without bridges or C++ dependencies.