Skip to content

rclnodejs v1.6.0

Choose a tag to compare

@minggangw minggangw released this 30 Oct 07:36

Release Notes for rclnodejs v1.6.0 (2025-10-30)

πŸš€ Major Features

JSON-Safe Message Serialization (#1308)

  • New Public API: Added serializationMode option to createSubscription()
    • 'default' - Native rclnodejs behavior
    • 'plain' - Converts TypedArrays to regular arrays (JSON-compatible)
    • 'json' - Full JSON-safe mode (handles TypedArrays, BigInt, NaN, Infinity)
  • New Utility Functions:
    • rclnodejs.toJSONSafe(obj) - Converts objects to JSON-friendly format
    • rclnodejs.toJSONString(obj) - Directly converts to JSON string
  • Problem Solved: Sensor messages with TypedArrays now work correctly with JSON.stringify(), web APIs, and logging workflows
  • Fully backward compatible - existing code continues to work unchanged

πŸ“¦ Dependency Cleanup

Removed external dependencies and replaced with native implementations:

  • Removed compare-versions (#1303) - Implemented custom version comparison
  • Removed fs-extra (#1302) - Using Node.js built-in fs module with custom utilities
  • Removed doT template engine (#1297) - Replaced with native JavaScript template literals
  • Removed terser (#1293) - Simplified to regex-based whitespace cleanup
  • Removed is-close (#1295) - Implemented custom floating-point comparison

Result: Lighter package with fewer third-party dependencies, improved maintainability

πŸ”§ Node.js Compatibility

Node.js v25 Support (#1313, #1314, #1315)

  • Removed deprecated SlowBuffer - Eliminated Node.js v6 era compatibility code that was causing errors in v25

πŸ—οΈ Code Modernization

Template Engine Migration (#1297)

  • Migrated from doT templates to native ES6 template literals
  • Benefits: Better performance, improved maintainability, reduced dependencies

πŸ”„ CI/CD Improvements

  • GitHub Actions Updates (#1291): Upgraded setup-node action to v6.0.0
  • Multi-version Testing: Expanded Node.js version coverage (v24, v25) across different platforms

Full Changelog: 1.5.2...1.6.0

πŸ™ Acknowledgments

Thanks to all contributors who helped identify issues and improve this release!