This repository is home to several TypeScript-based NPM packages for ROS 1 and ROS 2 support.
| Package | License | Version | Description |
|---|---|---|---|
@lichtblick/ros1 |
MIT | Standalone TypeScript implementation of the ROS 1 protocol using @lichtblick/xmlrpc with a pluggable transport layer |
|
@lichtblick/rosbag |
Apache-2.0 | Node.js & browser compatible module for reading rosbag binary data files | |
@lichtblick/rosbag2 |
MIT | ROS 2 legacy SQLite bag reader abstract implementation | |
@lichtblick/rosbag2-node |
MIT | not published | ROS 2 legacy SQLite bag reader for Node.js |
@lichtblick/rosbag2-web |
MIT | ROS 2 legacy SQLite bag reader for the browser | |
@lichtblick/rosmsg |
MIT | ROS 1 and ROS 2 message definition parser | |
@lichtblick/rosmsg-msgs-common |
MIT | Common ROS message definitions using @lichtblick/rosmsg |
|
@lichtblick/rosmsg-serialization |
MIT | ROS 1 message serialization | |
@lichtblick/rosmsg2-serialization |
MIT | ROS 2 message serialization using @lichtblick/cdr |
|
@lichtblick/rostime |
MIT | ROS Time and Duration primitives and helper methods | |
@lichtblick/xmlrpc |
MIT | XMLRPC client and server with pluggable server backend |
yarn lint: run lint on specified file(s), or all files if not specifiedyarn build: build all packages in topological orderyarn test: run all tests
Packages are published via the Publish to NPM workflow, which runs when a GitHub Release is published. To release a package:
- Bump the
versionin the target package'spackage.jsonto match the version you intend to release. - Create a release in the GitHub Releases UI using a tag named
packagename/vX.Y.Z(e.g.rosbag/v1.2.3). The package name is parsed from the tag prefix. - Publishing the release triggers the workflow, which builds the package and its dependencies in topological order and runs
npm publishfor just that package with provenance.