Skip to content

rclnodejs v1.8.0 Release (2026-01-07)

Choose a tag to compare

@minggangw minggangw released this 07 Jan 05:39
· 187 commits to develop since this release

Overview

We're excited to announce rclnodejs v1.8.0! This release brings reactive programming support with RxJS, enhanced logging capabilities, comprehensive clock/timer management, and improved message introspection tools.

🎉 Major Features

1. RxJS Observables Support (#1357)

  • Observable Subscriptions: You can now use RxJS Observables for subscriptions, enabling powerful reactive programming patterns for handling message streams.

2. Advanced Logging Capabilities (#1336, #1337, #1338)

  • Rosout Logging: Added support for publishing log messages to the standard /rosout topic.
  • Logging Directory: New getLoggingDirectory() API to programmatically retrieve the current logging location.
  • Thread Safety: Improved thread safety for logging operations.

3. Enhanced Time and Clock Management

  • Clock Callbacks: Added support for clock callbacks (#1355) and ClockEvent (#1354).
  • Timer Improvements:
    • getNextCallTime(): Inspect when a timer is scheduled to fire next (#1356).
    • Reset Callbacks: Support for callbacks when a timer is reset (#1348).

4. Message Introspection and Validation (#1346, #1341)

  • MessageIntrospector: New capability to inspect message schemas at runtime.
  • Enhanced Validation: Stronger message validation logic with non-throwing variants and better TypeScript definitions (#1345).

✨ New Capabilities

Node & Graph Information

  • Service Introspection: Added getServersInfoByService and getClientsInfoByService to query service availability and connectivity (#1335).
  • Liveliness Assertion: Added assertLiveliness() method for Publishers, critical for certain QoS configurations (#1331).
  • Content Filtering: Added getContentFilter for Subscriptions to inspect filtering rules (#1334).

Utilities

  • Argument Handling:
    • removeROSArgs(): Helper to strip ROS-specific arguments from command lines (#1339).
    • Unparsed Arguments: Better handling of unsupported arguments via rcl_arguments_get_unparsed_ros() (#1342).

🔧 Improvements & Fixes

Bug Fixes

  • Memory Management: Fixed potential leak by calling rcl_action_goal_status_array_fini() when publishing status fails (#1332).
  • Request Handling: Replaced rcl_take_request with rcl_take_request_with_info for more robust service request processing (#1333).

Build System

  • Dependencies: Added node-gyp to devDependencies explicitly (#1351).
  • CI: Removed 'rolling' distribution from Windows workflows (#1352).

Full Changelog: 1.7.0...1.8.0
Doc: https://robotwebtools.github.io/rclnodejs/docs/1.8.0/index.html