Releases: rticommunity/rticonnextdds-connector-js
RTI Connector for JavaScript 1.3.1
RTI Connector 1.3.1 is built on RTI Connext 7.3.0.2. For details on what’s new and fixed in 7.3.0.2, contact support@rti.com. See the release notes for RTI Connector for Javascript 1.3.1 here.
RTI Connector for JavaScript 1.3.0
RTI Connector 1.3.0 is built on RTI Connext DDS 7.3.0. See the release notes for RTI Connector for Javascript 1.3.0 here.
RTI Connector for JavaScript 1.2.2
RTI Connector 1.2.2 is built on RTI Connext DDS 6.1.2. See the release notes for RTI Connector for Javascript 1.2.2 here.
RTI Connector for JavaScript 1.2.1
RTI Connector 1.2.1 is built on RTI Connext DDS 6.1.1. See the release notes for RTI Connector for Javascript 1.2.1 here.
RTI Connector for JavaScript 1.2.0
RTI Connector 1.2.0 is built on RTI Connext DDS 6.1.1. See the release notes for RTI Connector for JavaScript 1.2.0 here.
RTI Connector for JavaScript 1.1.1
RTI Connector 1.1.1 is built on RTI Connext DDS 6.1.0.3, which fixes several bugs in the Core Libraries. For details, contact support@rti.com.
RTI Connector for JavaScript
RTI® Connext® DDS is a connectivity software framework for integrating data
sources of all types. At its core is the world's leading ultra-high performance,
distributed networking databus.
RTI Connector provides a quick and easy way to write applications that
publish and subscribe to the RTI Connext DDS databus in JavaScript and other
languages.
Documentation
To get started and learn more about RTI Connector for JavaScript see the
documentation here.
Examples
The examples/nodejs
directory provides several examples:
simple
shows how to create basic publisher and subscriber applications- In
transformation
, an application reads, transforms and publishes back the data web_http
shows how an HTTP client can request DDS data using RESTweb_socket
shows how to push DDS data to a browser through socket.io
Dependencies
RTI Connector for JavaScript has the following dependencies, which are also listed in package.json
:
- ref-napi: turns Buffer instances into "pointers"
- ref-struct-napi: create ABI-compilant "Struct" instances on top of Buffers
- ffi-napi: used for loading and calling dynamic libraries using pure JavaScript
- events: used for the 'EventEmitter' (legacy implementation of RTI Connector)
Additionally to run the web_socket
example, socket.io and OpenLayers are required.
Additional dependencies are required to run the unit tests and some of the examples. Please see the README files in the appropriate directory.
Python dependency
Some of the dependencies are shipped as source code and use node-gyp to be compiled locally. node-gyp
requires Python 2.7 and does not work with Python 3. The requirements for node-gyp
can be found at:
C/C++ compiler dependency
The dependency ref is shipped as source code and requires a C++11 compiler.
License
RTI Connector for JavaScript and RTI Connector for Python are part of the Connext
DDS Professional Package. If you have a valid license for the RTI Connext DDS
Professional Package, such license shall govern your use of RTI Connector for
Python and RTI Connector for JavaScript. All other use of this software shall
be governed solely by the terms of RTI’s Software License for Non-Commercial
Use #4040, included at the top level of the `Connector for Python repository
RTI Connector for JavaScript 1.1.0
RTI Connector 1.1.0 is built on RTI Connext DDS 6.1.0. See the full release notes for RTI Connector for JavaScript 1.1.0 here.
What's new in 1.1.0
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.
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.
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.
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.
Connector for Javascript dependencies now locked to specific versions
package-lock.json has been committed, fixing the versions of Connector for Javascript’s dependencies.
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.
What's fixed in v1.1.0
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.
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.
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)
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.
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.
First official release of RTI Connector for Javascript
RTI Connector 1.0.0 is built on RTI Connext DDS 6.0.1.
Minor doc update
The README now warns about a change that broke application code: sequences are now 0-indexed, not 1-indexed.