Repo symbol

rclnodejs repository

nodejs javascript client typescript robotics ros ros2 rcl
Repo symbol

rclnodejs repository

nodejs javascript client typescript robotics ros ros2 rcl
Repo symbol

rclnodejs repository

nodejs javascript client typescript robotics ros ros2 rcl
Repo symbol

rclnodejs repository

nodejs javascript client typescript robotics ros ros2 rcl
Repo symbol

rclnodejs repository

nodejs javascript client typescript robotics ros ros2 rcl rclcpp_benchmark custom_msg_test geometry_msgs

Repository Summary

Description Node.js version of ROS 2.0 client
Checkout URI https://github.com/robotwebtools/rclnodejs.git
VCS Type git
VCS Version develop
Last Updated 2025-10-20
Dev Status UNKNOWN
Released UNRELEASED
Tags nodejs javascript client typescript robotics ros ros2 rcl
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
rclcpp_benchmark 0.0.1
custom_msg_test 1.0.0
geometry_msgs 0.1.0

README

rclnodejs - The ROS 2 Client Library for JavaScript

npm Coverage Status npm GitHub license node npm type definitions code style: prettier

ROS Distro* Status
Rolling
Kilted
Jazzy
Humble
Linux
Linux
Windows

Note: rclnodejs development and maintenance is limited to the ROS 2 LTS releases and the Rolling development branch

rclnodejs is a Node.js client library for ROS 2 that provides comprehensive JavaScript and TypeScript APIs for developing ROS 2 solutions.

const rclnodejs = require('rclnodejs');
rclnodejs.init().then(() => {
  const node = new rclnodejs.Node('publisher_example_node');
  const publisher = node.createPublisher('std_msgs/msg/String', 'topic');
  publisher.publish(`Hello ROS 2 from rclnodejs`);
  node.spin();
});

Documentation

Installation

Prerequisites

Install rclnodejs

npm i rclnodejs

Note: To install rclnodejs from GitHub: add "rclnodejs":"RobotWebTools/rclnodejs#<branch>" to your package.json dependency section.

Docker: For containerized development, see the included Dockerfile for building and testing with different ROS distributions and Node.js versions.

See the features and try the examples to get started.

Prebuilt Binaries

rclnodejs ships with prebuilt native binaries for common Linux configurations since v1.5.2, eliminating the need for compilation during installation. This significantly speeds up installation and reduces dependencies.

Supported Platforms:

  • Ubuntu 22.04 (Jammy) - ROS 2 Humble
  • Ubuntu 24.04 (Noble) - ROS 2 Jazzy, Kilted
  • Architectures: x64, arm64
  • Node.js: >= 16.20.2 (N-API compatible)

Force Building from Source:

If you need to build from source even when a prebuilt binary is available, set the environment variable:

export RCLNODEJS_FORCE_BUILD=1
npm install rclnodejs

rclnodejs-cli

rclnodejs-cli is a companion project we recently launched to provide a commandline interface to a set of developer tools for working with this rclnodejs. You may find rclnodejs-cli particularly useful if you plan to create ROS 2 node(s) and launch files for working with multiple node orchestrations.

Usage: rclnodejs [command] [options]

Options:
  -h, --help                               display help for command

Commands:
  create-package [options] <package-name>  Create a ROS2 package for Nodejs development.
  generate-ros-messages                    Generate JavaScript code from ROS2 IDL interfaces
  help [command]                           display help for command

API Documentation

API documentation is available online or generate locally with npm run docs.

Electron-based Visualization

Create rich, interactive desktop applications using Electron and web technologies like Three.js. Build 3D visualizations, monitoring dashboards, and control interfaces that run on Windows, macOS, and Linux.

File truncated at 100 lines see the full file

Repo symbol

rclnodejs repository

nodejs javascript client typescript robotics ros ros2 rcl
Repo symbol

rclnodejs repository

nodejs javascript client typescript robotics ros ros2 rcl
Repo symbol

rclnodejs repository

nodejs javascript client typescript robotics ros ros2 rcl
Repo symbol

rclnodejs repository

nodejs javascript client typescript robotics ros ros2 rcl