Skip to content

Releases: KxSystems/mqtt

1.3.0

14 Mar 12:36
bc34e09
Compare
Choose a tag to compare

Release 1.3.0

  • new subx function to allow choice of quality of service on subscriptions (existing sub function still works as before) - potential to increase performance or quality of subscriptions
  • improved docs on pub/pubx/sub/subx around quality of service (see reference.md)
  • smaller internal messages, less mallocs

1.2.1

09 Mar 14:32
0803d82
Compare
Choose a tag to compare

Release 1.2.1

  • Library now uses 1.3.12 of paho.mqtt.c - fixes fo 1.3.12 listed here
  • Docs included with release (improved documentation of connection options)
  • Fix for memory leak on subscriptions

1.2.0

15 Nov 17:50
68da71a
Compare
Choose a tag to compare

Release 1.2.0

  • Library now uses 1.3.11 of paho.mqtt.c
  • Now supports TLS/SSL connections (see below)

New library addition mqttkdb_ssl.so which allows both TLS/SSL and non-TLS/SSL connections.
Differs from existing mqttkdb.so in that it requires the mqtt library libpaho-mqtt3cs and openssl libs to be installed on the system.
The mqttkdb.so is still provided for non TLS/SSL users, preventing them from having to install TLS/SSL libs on their system.

When using mqttkdb_ssl.so :

  • the connection URI needs to change from tcp:// to ssl:// in order to work with SSL/TLS connections
  • remember to alter q script to load the mqttkdb_ssl.so instead of mqttkdb.so
  • requires SSL/TLS specific connection params (in addition to any existing params e.g. username/password)

New connection params

Name Type Details
trustStore sym The file in PEM format containing the public digital certificates trusted by the client.
keyStore sym The file in PEM format containing the public certificate chain of the client. It may also include the client's private key.
privateKey sym If not included in the sslKeyStore, this setting points to the file in PEM format containing the client's private key.
privateKeyPassword sym The password to load the client's privateKey if encrypted.
enabledCipherSuites sym The list of cipher suites that the client will present to the server during the SSL handshake. For a full explanation of the cipher list format, please see the OpenSSL on-line documentation: http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT If this setting is ommitted, its default value will be "ALL", that is, all the cipher suites -excluding those offering no encryption- will be considered. This setting can be used to set an SSL anonymous connection ("aNULL" string value, for instance)
enableServerCertAuth int/long True/False (i.e. 1/0) option to enable verification of the server certificate
sslVersion int/long The SSL/TLS version to use. Specify one of MQTT_SSL_VERSION_DEFAULT (0), MQTT_SSL_VERSION_TLS_1_0 (1), MQTT_SSL_VERSION_TLS_1_1 (2) or MQTT_SSL_VERSION_TLS_1_2 (3). Only used if struct_version is >= 1
verify int/long Whether to carry out post-connect checks, including that a certificate matches the given host name.
CApath sym From the OpenSSL documentation: If CApath is not NULL, it points to a directory containing CA certificates in PEM format

Example

opts:`trustStore`enableServerCertAuth`verify`sslVersion!((`$"/mqttq/server-certs/ca.crt");(0i);(0i);(0i))
.mqtt.conn[`$"ssl://localhost:1883";`rcv;opts];

1.1.1

14 Nov 22:37
d34b3b6
Compare
Choose a tag to compare

Fixes

  • fix provided build package to include all files (broke in 1.1.0)
  • reduce need for ssl for non-ssl connections & dependancy on multiple MQTT libs

1.1.0

07 Jan 11:54
e56d449
Compare
Choose a tag to compare
  • Addition of Last-Will functionality
  • Instructions added for Alpine builds

Initial Stable Release

18 Aug 17:49
c7d1cfe
Compare
Choose a tag to compare

Promotion of 1.0.0-rc.1 to 1.0.0

Release candidate update, build + repo standardisation

21 May 11:21
edb1c0b
Compare
Choose a tag to compare
  • Update to the travis.yml file to standardise with Solace/HDF5/prometheus-exporter

Initial release candidate for version 1.0.0

12 May 12:00
fdf2ba8
Compare
Choose a tag to compare

MQTT (Message Queuing Telemetry Transport) is an extremely lightweight publish/subscribe messaging transport. Designed for machine-to-machine communication, it has become the de-facto standard for IoT communication.
The Kx MQTT interface allows kdb+ processes to publish and subscribe to topics using MQTT.