ROS TypeScript monorepo

January 13, 2025 ยท View on GitHub

This repository is home to several TypeScript-based NPM packages for ROS 1 and ROS 2 support.

PackageLicenseVersionDescription
@foxglove/ros1MIT@foxglove/ros1 on NPMStandalone TypeScript implementation of the ROS 1 protocol using @foxglove/xmlrpc with a pluggable transport layer
@foxglove/rosbag (API docs)Apache-2.0@foxglove/rosbag on NPMNode.js & browser compatible module for reading rosbag binary data files
@foxglove/rosbag2MIT@foxglove/rosbag2 on NPMROS 2 legacy SQLite bag reader abstract implementation
@foxglove/rosbag2-nodeMIT@foxglove/rosbag2-node on NPMROS 2 legacy SQLite bag reader for Node.js
@foxglove/rosbag2-webMIT@foxglove/rosbag2-web on NPMROS 2 legacy SQLite bag reader for the browser
@foxglove/rosmsgMIT@foxglove/rosmsg on NPMROS 1 and ROS 2 message definition parser
@foxglove/rosmsg-msgs-commonMIT@foxglove/rosmsg-msgs-common on NPMCommon ROS message definitions using @foxglove/rosmsg
@foxglove/rosmsg-serializationMIT@foxglove/rosmsg-serialization on NPMROS 1 message serialization
@foxglove/rosmsg2-serializationMIT@foxglove/rosmsg2-serialization on NPMROS 2 message serialization using @foxglove/cdr
@foxglove/rostimeMIT@foxglove/rostime on NPMROS Time and Duration primitives and helper methods
@foxglove/xmlrpcMIT@foxglove/xmlrpc on NPMXMLRPC client and server with pluggable server backend

Development

  • yarn lint: run lint on specified file(s), or all files if not specified
  • yarn build: build all packages in topological order
  • yarn test: run all tests

Publishing

Packages are automatically published when a tag named packagename/vX.Y.Z is pushed. You can use the GitHub Releases UI to create a release and tag.

Stay in touch

Join our Discord community to ask questions, share feedback, and stay up to date on what our team is working on.