Repository Summary
| Description | |
| Checkout URI | https://github.com/robotwebtools/rclnodejs.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-07 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| 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
| ROS Distro* | Status |
|---|---|
| Rolling Kilted Jazzy Humble |
|
Note: Supported ROS 2 distributions include Humble, Jazzy, Kilted, and Rolling.
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();
});
This example assumes your ROS 2 environment is already sourced.
Documentation
- Get started: Installation, Quick Start, Tutorials
- Reference: API Documentation, Using TypeScript, ROS 2 Interface Message Generation
- Features and examples: rclnodejs-cli, Electron-based Visualization, Observable Subscriptions, Performance Benchmarks
- Project docs: Efficient Usage Tips, FAQ and Known Issues, Building from Scratch, Contributing
Installation
Choose the path that matches how you plan to use rclnodejs:
- Install from npm: add rclnodejs to your own application.
- Quick Start: run the examples from this repository checkout.
Prerequisites
Before installing, building, or running rclnodejs, source your ROS 2 environment:
source /opt/ros/<distro>/setup.bash
Install from npm
Use this path if you want to depend on rclnodejs from your own ROS 2 Node.js application.
npm i rclnodejs
After installation, use the example at the top of this README as a minimal publisher, or continue with Quick Start to run the examples in this repository.
Install from GitHub
Use this path only if you need a branch or commit that is not yet published to npm.
GitHub installs normally build from source. The published npm package includes prebuilt binaries for supported Linux targets, but this repository does not track those prebuilt artifacts.
npm install RobotWebTools/rclnodejs#<branch>
Or 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 applies to supported Linux environments when installing the published npm package.
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)
Installations outside this prebuilt matrix automatically fall back to building from source.
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
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Description | |
| Checkout URI | https://github.com/robotwebtools/rclnodejs.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-07 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| 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
| ROS Distro* | Status |
|---|---|
| Rolling Kilted Jazzy Humble |
|
Note: Supported ROS 2 distributions include Humble, Jazzy, Kilted, and Rolling.
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();
});
This example assumes your ROS 2 environment is already sourced.
Documentation
- Get started: Installation, Quick Start, Tutorials
- Reference: API Documentation, Using TypeScript, ROS 2 Interface Message Generation
- Features and examples: rclnodejs-cli, Electron-based Visualization, Observable Subscriptions, Performance Benchmarks
- Project docs: Efficient Usage Tips, FAQ and Known Issues, Building from Scratch, Contributing
Installation
Choose the path that matches how you plan to use rclnodejs:
- Install from npm: add rclnodejs to your own application.
- Quick Start: run the examples from this repository checkout.
Prerequisites
Before installing, building, or running rclnodejs, source your ROS 2 environment:
source /opt/ros/<distro>/setup.bash
Install from npm
Use this path if you want to depend on rclnodejs from your own ROS 2 Node.js application.
npm i rclnodejs
After installation, use the example at the top of this README as a minimal publisher, or continue with Quick Start to run the examples in this repository.
Install from GitHub
Use this path only if you need a branch or commit that is not yet published to npm.
GitHub installs normally build from source. The published npm package includes prebuilt binaries for supported Linux targets, but this repository does not track those prebuilt artifacts.
npm install RobotWebTools/rclnodejs#<branch>
Or 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 applies to supported Linux environments when installing the published npm package.
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)
Installations outside this prebuilt matrix automatically fall back to building from source.
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
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Description | |
| Checkout URI | https://github.com/robotwebtools/rclnodejs.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-07 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| 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
| ROS Distro* | Status |
|---|---|
| Rolling Kilted Jazzy Humble |
|
Note: Supported ROS 2 distributions include Humble, Jazzy, Kilted, and Rolling.
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();
});
This example assumes your ROS 2 environment is already sourced.
Documentation
- Get started: Installation, Quick Start, Tutorials
- Reference: API Documentation, Using TypeScript, ROS 2 Interface Message Generation
- Features and examples: rclnodejs-cli, Electron-based Visualization, Observable Subscriptions, Performance Benchmarks
- Project docs: Efficient Usage Tips, FAQ and Known Issues, Building from Scratch, Contributing
Installation
Choose the path that matches how you plan to use rclnodejs:
- Install from npm: add rclnodejs to your own application.
- Quick Start: run the examples from this repository checkout.
Prerequisites
Before installing, building, or running rclnodejs, source your ROS 2 environment:
source /opt/ros/<distro>/setup.bash
Install from npm
Use this path if you want to depend on rclnodejs from your own ROS 2 Node.js application.
npm i rclnodejs
After installation, use the example at the top of this README as a minimal publisher, or continue with Quick Start to run the examples in this repository.
Install from GitHub
Use this path only if you need a branch or commit that is not yet published to npm.
GitHub installs normally build from source. The published npm package includes prebuilt binaries for supported Linux targets, but this repository does not track those prebuilt artifacts.
npm install RobotWebTools/rclnodejs#<branch>
Or 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 applies to supported Linux environments when installing the published npm package.
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)
Installations outside this prebuilt matrix automatically fall back to building from source.
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
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Description | |
| Checkout URI | https://github.com/robotwebtools/rclnodejs.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-07 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| 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
| ROS Distro* | Status |
|---|---|
| Rolling Kilted Jazzy Humble |
|
Note: Supported ROS 2 distributions include Humble, Jazzy, Kilted, and Rolling.
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();
});
This example assumes your ROS 2 environment is already sourced.
Documentation
- Get started: Installation, Quick Start, Tutorials
- Reference: API Documentation, Using TypeScript, ROS 2 Interface Message Generation
- Features and examples: rclnodejs-cli, Electron-based Visualization, Observable Subscriptions, Performance Benchmarks
- Project docs: Efficient Usage Tips, FAQ and Known Issues, Building from Scratch, Contributing
Installation
Choose the path that matches how you plan to use rclnodejs:
- Install from npm: add rclnodejs to your own application.
- Quick Start: run the examples from this repository checkout.
Prerequisites
Before installing, building, or running rclnodejs, source your ROS 2 environment:
source /opt/ros/<distro>/setup.bash
Install from npm
Use this path if you want to depend on rclnodejs from your own ROS 2 Node.js application.
npm i rclnodejs
After installation, use the example at the top of this README as a minimal publisher, or continue with Quick Start to run the examples in this repository.
Install from GitHub
Use this path only if you need a branch or commit that is not yet published to npm.
GitHub installs normally build from source. The published npm package includes prebuilt binaries for supported Linux targets, but this repository does not track those prebuilt artifacts.
npm install RobotWebTools/rclnodejs#<branch>
Or 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 applies to supported Linux environments when installing the published npm package.
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)
Installations outside this prebuilt matrix automatically fall back to building from source.
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
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Description | |
| Checkout URI | https://github.com/robotwebtools/rclnodejs.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-07 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| 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
| ROS Distro* | Status |
|---|---|
| Rolling Kilted Jazzy Humble |
|
Note: Supported ROS 2 distributions include Humble, Jazzy, Kilted, and Rolling.
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();
});
This example assumes your ROS 2 environment is already sourced.
Documentation
- Get started: Installation, Quick Start, Tutorials
- Reference: API Documentation, Using TypeScript, ROS 2 Interface Message Generation
- Features and examples: rclnodejs-cli, Electron-based Visualization, Observable Subscriptions, Performance Benchmarks
- Project docs: Efficient Usage Tips, FAQ and Known Issues, Building from Scratch, Contributing
Installation
Choose the path that matches how you plan to use rclnodejs:
- Install from npm: add rclnodejs to your own application.
- Quick Start: run the examples from this repository checkout.
Prerequisites
Before installing, building, or running rclnodejs, source your ROS 2 environment:
source /opt/ros/<distro>/setup.bash
Install from npm
Use this path if you want to depend on rclnodejs from your own ROS 2 Node.js application.
npm i rclnodejs
After installation, use the example at the top of this README as a minimal publisher, or continue with Quick Start to run the examples in this repository.
Install from GitHub
Use this path only if you need a branch or commit that is not yet published to npm.
GitHub installs normally build from source. The published npm package includes prebuilt binaries for supported Linux targets, but this repository does not track those prebuilt artifacts.
npm install RobotWebTools/rclnodejs#<branch>
Or 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 applies to supported Linux environments when installing the published npm package.
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)
Installations outside this prebuilt matrix automatically fall back to building from source.
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
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Description | |
| Checkout URI | https://github.com/robotwebtools/rclnodejs.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-07 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| 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
| ROS Distro* | Status |
|---|---|
| Rolling Kilted Jazzy Humble |
|
Note: Supported ROS 2 distributions include Humble, Jazzy, Kilted, and Rolling.
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();
});
This example assumes your ROS 2 environment is already sourced.
Documentation
- Get started: Installation, Quick Start, Tutorials
- Reference: API Documentation, Using TypeScript, ROS 2 Interface Message Generation
- Features and examples: rclnodejs-cli, Electron-based Visualization, Observable Subscriptions, Performance Benchmarks
- Project docs: Efficient Usage Tips, FAQ and Known Issues, Building from Scratch, Contributing
Installation
Choose the path that matches how you plan to use rclnodejs:
- Install from npm: add rclnodejs to your own application.
- Quick Start: run the examples from this repository checkout.
Prerequisites
Before installing, building, or running rclnodejs, source your ROS 2 environment:
source /opt/ros/<distro>/setup.bash
Install from npm
Use this path if you want to depend on rclnodejs from your own ROS 2 Node.js application.
npm i rclnodejs
After installation, use the example at the top of this README as a minimal publisher, or continue with Quick Start to run the examples in this repository.
Install from GitHub
Use this path only if you need a branch or commit that is not yet published to npm.
GitHub installs normally build from source. The published npm package includes prebuilt binaries for supported Linux targets, but this repository does not track those prebuilt artifacts.
npm install RobotWebTools/rclnodejs#<branch>
Or 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 applies to supported Linux environments when installing the published npm package.
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)
Installations outside this prebuilt matrix automatically fall back to building from source.
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
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Description | |
| Checkout URI | https://github.com/robotwebtools/rclnodejs.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-07 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| 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
| ROS Distro* | Status |
|---|---|
| Rolling Kilted Jazzy Humble |
|
Note: Supported ROS 2 distributions include Humble, Jazzy, Kilted, and Rolling.
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();
});
This example assumes your ROS 2 environment is already sourced.
Documentation
- Get started: Installation, Quick Start, Tutorials
- Reference: API Documentation, Using TypeScript, ROS 2 Interface Message Generation
- Features and examples: rclnodejs-cli, Electron-based Visualization, Observable Subscriptions, Performance Benchmarks
- Project docs: Efficient Usage Tips, FAQ and Known Issues, Building from Scratch, Contributing
Installation
Choose the path that matches how you plan to use rclnodejs:
- Install from npm: add rclnodejs to your own application.
- Quick Start: run the examples from this repository checkout.
Prerequisites
Before installing, building, or running rclnodejs, source your ROS 2 environment:
source /opt/ros/<distro>/setup.bash
Install from npm
Use this path if you want to depend on rclnodejs from your own ROS 2 Node.js application.
npm i rclnodejs
After installation, use the example at the top of this README as a minimal publisher, or continue with Quick Start to run the examples in this repository.
Install from GitHub
Use this path only if you need a branch or commit that is not yet published to npm.
GitHub installs normally build from source. The published npm package includes prebuilt binaries for supported Linux targets, but this repository does not track those prebuilt artifacts.
npm install RobotWebTools/rclnodejs#<branch>
Or 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 applies to supported Linux environments when installing the published npm package.
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)
Installations outside this prebuilt matrix automatically fall back to building from source.
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
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Description | |
| Checkout URI | https://github.com/robotwebtools/rclnodejs.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-07 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| 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
| ROS Distro* | Status |
|---|---|
| Rolling Kilted Jazzy Humble |
|
Note: Supported ROS 2 distributions include Humble, Jazzy, Kilted, and Rolling.
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();
});
This example assumes your ROS 2 environment is already sourced.
Documentation
- Get started: Installation, Quick Start, Tutorials
- Reference: API Documentation, Using TypeScript, ROS 2 Interface Message Generation
- Features and examples: rclnodejs-cli, Electron-based Visualization, Observable Subscriptions, Performance Benchmarks
- Project docs: Efficient Usage Tips, FAQ and Known Issues, Building from Scratch, Contributing
Installation
Choose the path that matches how you plan to use rclnodejs:
- Install from npm: add rclnodejs to your own application.
- Quick Start: run the examples from this repository checkout.
Prerequisites
Before installing, building, or running rclnodejs, source your ROS 2 environment:
source /opt/ros/<distro>/setup.bash
Install from npm
Use this path if you want to depend on rclnodejs from your own ROS 2 Node.js application.
npm i rclnodejs
After installation, use the example at the top of this README as a minimal publisher, or continue with Quick Start to run the examples in this repository.
Install from GitHub
Use this path only if you need a branch or commit that is not yet published to npm.
GitHub installs normally build from source. The published npm package includes prebuilt binaries for supported Linux targets, but this repository does not track those prebuilt artifacts.
npm install RobotWebTools/rclnodejs#<branch>
Or 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 applies to supported Linux environments when installing the published npm package.
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)
Installations outside this prebuilt matrix automatically fall back to building from source.
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
File truncated at 100 lines see the full file
CONTRIBUTING
Repository Summary
| Description | |
| Checkout URI | https://github.com/robotwebtools/rclnodejs.git |
| VCS Type | git |
| VCS Version | develop |
| Last Updated | 2026-04-07 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| 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
| ROS Distro* | Status |
|---|---|
| Rolling Kilted Jazzy Humble |
|
Note: Supported ROS 2 distributions include Humble, Jazzy, Kilted, and Rolling.
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();
});
This example assumes your ROS 2 environment is already sourced.
Documentation
- Get started: Installation, Quick Start, Tutorials
- Reference: API Documentation, Using TypeScript, ROS 2 Interface Message Generation
- Features and examples: rclnodejs-cli, Electron-based Visualization, Observable Subscriptions, Performance Benchmarks
- Project docs: Efficient Usage Tips, FAQ and Known Issues, Building from Scratch, Contributing
Installation
Choose the path that matches how you plan to use rclnodejs:
- Install from npm: add rclnodejs to your own application.
- Quick Start: run the examples from this repository checkout.
Prerequisites
Before installing, building, or running rclnodejs, source your ROS 2 environment:
source /opt/ros/<distro>/setup.bash
Install from npm
Use this path if you want to depend on rclnodejs from your own ROS 2 Node.js application.
npm i rclnodejs
After installation, use the example at the top of this README as a minimal publisher, or continue with Quick Start to run the examples in this repository.
Install from GitHub
Use this path only if you need a branch or commit that is not yet published to npm.
GitHub installs normally build from source. The published npm package includes prebuilt binaries for supported Linux targets, but this repository does not track those prebuilt artifacts.
npm install RobotWebTools/rclnodejs#<branch>
Or 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 applies to supported Linux environments when installing the published npm package.
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)
Installations outside this prebuilt matrix automatically fall back to building from source.
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
File truncated at 100 lines see the full file