8. Release Notes

8.1. Supported Platforms

Connector has been validated to run with the following Node.js versions:
  • v18

  • v19

  • v20

Warning

Due to an upstream change in Node.js, some versions will fail when building Connector dependencies. This issue affects, at the very least, Node.js versions 18.20, 20.12 and 21.6. For more information, see Github Issue #198.

Other versions may also work, but have not been validated internally. If you run into an issue, make sure that the issue can be reproduced in any of the versions listed above.

Connector uses a native C library that works on most Windows®, Linux® and macOS® platforms. It has been tested on the following systems:

Linux
  • CentOS™ 7.0 (x64)

  • Red Hat® Enterprise Linux 7, 7.3, 7.5, 7.6, 8, 9 (x64)

  • Ubuntu® 18.04 LTS (x64, Arm v7, Arm v8), 20.04 LTS (x64), 22.04 LTS (x64, Arm v8)

macOS
  • macOS 11, 12, 13 (x64)

Windows
  • Windows 10, 11 (x64)

  • Windows Server 2016, 2022 (x64)

Connector is supported in other languages in addition to JavaScript, see the main Connector repository.

8.2. Version 1.3.0

8.2.1. What’s New in 1.3.0

RTI Connector 1.3.0 is built on RTI Connext DDS 7.3.0.

8.2.1.1. Failed to create a Connector in certain Node versions (18.8 or greater)

Due to an incompatibility in some Connector dependencies, it was not possible to create a Connector when using certain Node.js versions. Trying to create a Connector showed the following backtrace:

rticonnextdds-connector-js/node_modules/ffi-napi/lib/dynamic_library.js:67
  if (match = err.match(/^(([^ \t()])+\.so([^ \t:()])*):([ \t])*/)) {
                  ^
 TypeError: Cannot read properties of null (reading 'match')

This issue is known to have affected Node.js versions 18.8 and 20; other versions may also have been affected.

8.3. Previous Releases

8.3.1. Version 1.2.2

8.3.1.1. What’s New in 1.2.2

RTI Connector 1.2.2 is built on RTI Connext DDS 6.1.2.

8.3.1.1.1. Native Windows libraries updated to Visual Studio 2015

Previously, the native libraries shipped with Connector were built using Visual Studio 2013 (and accompanied by Microsoft’s mscvr120 redistributable). These libraries are now built using Visual Studio 2015. The redistributable that is shipped has been updated accordingly.

8.3.2. Version 1.2.1

8.3.2.1. What’s New in 1.2.1

Connector 1.2.1 updates some third party dependencies that were found to contain vulnerabilities. Connector was not affected by these vulnerabilities.

8.3.3. Version 1.2.0

8.3.3.1. What’s New in 1.2.0

RTI Connector 1.2.0 is built on RTI Connext DDS 6.1.1.

8.3.3.1.1. New Platforms

Connector has been validated on macOS 11 (Big Sur) systems on x64 and Arm v8 CPUs (via x64 libraries).

8.3.3.1.2. New API makes it easier to query what version of Connector is being used

A new API, Connector.getVersion(), has been added that provides the caller with the version of Connector and the version of the native libraries being used.

8.3.3.2. What’s Fixed in 1.2.0

8.3.3.2.1. Error logged when accessing string longer than 128 bytes

Previously, on an input, when accessing a string longer than 128 bytes, the following error was printed:

Output buffer too small for member (name = "frame", id = 1). Provided size (128), requires size (x).

This error message was innocuous; there was actually no issue with retrieving the string. The message is no longer printed.

[RTI Issue ID CON-157]

8.3.3.2.2. Support added for handling large 64-bit integers

Support has been improved for both getting and setting large (greater than 2^53) 64-bit values. See Accessing 64-bit integers for more information.

[RTI Issue ID CON-190]

8.3.3.2.3. Promise returned by Output.wait did not resolve/reject

The Promise being returned by the Output.wait method (used to wait for acknowledgements on an output) was not being resolved or rejected. This is no longer the case; the returned Promise will now be resolved if all samples within the DataWriter’s queue are acknowledged within the given timeout, or rejected if there are still outstanding samples after the supplied timeout has elapsed.

[RTI Issue ID CON-227]

8.3.4. Version 1.1.1

Connector 1.1.1 is built on RTI Connext DDS 6.1.0.3, which fixes several bugs in the Core Libraries. If you want more details on the bugs fixed in 6.1.0.3, contact support@rti.com. These bugs are also fixed in RTI Connext DDS 6.1.1, upon which RTI Connector 1.2.0 is built.

8.3.5. Version 1.1.0

8.3.5.1. What’s New in 1.1.0

RTI Connector 1.1.0 is built on RTI Connext DDS 6.1.0.

8.3.5.1.1. Support added for ARMv8 architectures

Connector for JavaScript now runs on ARMv8 architectures. Native libraries built for ARMv8 Ubuntu 16.04 are now shipped alongside Connector. These libraries have been tested on ARMv8 Ubuntu 16.04 and ARMv8 Ubuntu 18.04.

8.3.5.1.2. Support added for Node.js version 12

Previously, Node.js version 12 was not supported in Connector for JavaScript. Support has been added for Node.js version 12 (the current LTS), and support has been dropped for Node.js version 8 (which has been deprecated). Note that Node.js version 12.19.0 is incompatible with Connector for JavaScript due to a regression in that release of Node.js. Versions 12.18.x and 12.20.x are compatible with Connector for JavaScript.

8.3.5.1.3. Sample state, instance state and view state can now be obtained in Connector

The SampleInfo() class in Connector has been extended to provide access to the sample state, view state, and instance state fields. These new fields work the same as the existing fields in the structure (in Connector for Python they are the keys to the dictionary, in Connector for JavaScript they are the keys to the JSON Object). See Accessing sample meta-data for more information on this new feature.

8.3.5.1.4. Support for accessing the key values of disposed instances

Support for disposing instances was added in Connector 1.0.0. However, it was not possible to access the key values of the disposed instance. This functionality is now available in the Python and JavaScript bindings. When a disposed sample is received, the key values can be accessed. The syntax for accessing these key values is the same as when the sample contains valid data (i.e., using type-specific getters, or obtaining the entire sample as an object). When the instance state is NOT_ALIVE_DISPOSED, only the key values in the sample should be accessed. See Accessing key values of disposed samples for more information on this new feature.

8.3.5.1.5. Connector for Javascript dependencies now locked to specific versions

package-lock.json has been committed, fixing the versions of Connector for Javascript’s dependencies.

8.3.5.1.6. Support for Security, Monitoring and other Connext DDS add-on libraries

It is now possible to load additional Connext DDS libraries at runtime. This means that Connext DDS features such as Monitoring and Security Plugins are now supported. Refer to Loading Connext DDS Add-On Libraries for more information.

8.3.5.2. What’s Fixed in 1.1.0

1.0.0 is the first official release of RTI Connector for JavaScript as well as RTI Connector for Python.

If you had access to previous experimental releases, this release makes the product more robust, modifies many APIs and adds new functionality. However the old APIs have been preserved for backward compatibility as much as possible.

RTI Connector 1.0.0 is built on RTI Connext DDS 6.0.1.

8.3.5.2.1. Creating two instances of Connector resulted in a license error

Under some circumstances, it was not possible to create two Connector objects. The creation of the second Connector object failed due to a license error. This issue affected all of the Connector APIs (Python, JavaScript). This issue has been fixed.

[RTI Issue ID CON-163]

8.3.5.2.2. Some larger integer values may have been corrupted by Connector’s internal JSON parser

The internal JSON parser used in Connector failed to identify integer numbers from double-precision floating-point numbers for certain values. For example, if a number could not be represented as a 64-bit integer, the parser may have incorrectly identified it as an integer, causing the value to become corrupted. This problem has been resolved.

[RTI Issue ID CON-170]

8.3.5.2.3. Support for loading multiple configuration files

A Connector object now supports loading multiple files. This allows separating the definition of types, QoS profiles, and DomainParticipants into different files:

const connector = new rti.Connector("my_profiles.xml;my_types.xml;my_participants.xml", configName)

[RTI Issue ID CON-209]

8.3.5.2.4. Creating a Connector instance with a participant_qos tag in the XML may have resulted in a license error

In some cases, if the XML configuration file of Connector contained a <participant_qos> tag within the definition of the DomainParticipant, the creation of the Connector would fail with a “license not found” error. This problem has been resolved.

[RTI Issue ID CON-214]

8.3.5.2.5. Websocket example may have failed to run

The websocket example (available only in Connector for Javascript) may have failed to run due to one of its dependencies, socket.io, removing a public API. This problem has been resolved.

[RTI Issue ID CON-217]

8.4. Vulnerability Assessments

Internally, Connector relies on Lua. RTI has assessed the current version of Lua used by Connector, version 5.2, and found that Connector is not currently affected by any of the publicly disclosed vulnerabilities in Lua 5.2.