github vernemq/vernemq 1.6.0
VerneMQ 1.6.0

latest releases: 2.0.0, 2.0.0-rc1, 2.0.0-rc...
5 years ago
  • Fix issue when calling a function in a Lua script that requires more time to complete than the default gen_server timeout (#589).

  • Silently drop messages published by the client that use a routing key starting with '$'.

  • Full MQTTv5 support

    With this release VerneMQ officially supports MQTT protocol version
    5.0. The MQTTv5 support is currently marked as in BETA and we may
    still have to change some things.

    VerneMQ has full support for the complete MQTTv5 spec, but to list a
    few of the new features:

    • Support for enhanced (re)authentication

    • User properties

    • Message Expiration

    • Last Will and Testament delay

    • Shared subscriptions

    • Retained messages

    • Request/Response flows

    • Topic aliases

      VerneMQ supports topic aliases from both the client to the broker and from
      the broker to the client.

      When a client connects to the broker, the broker will inform the client of
      the maximum allowed topic alias using the topic alias max property on the
      CONNACK packet (if it has been set to a non-zero value). The topic alias
      maximum property can be configured through the topic_alias_max
      configuration variable or overriden in a plugin in the auth_on_register
      hook. The broker will then handle topic aliases from the client as per the
      MQTTv5 spec.

    • Flow control

    • Subscription flags Retain as Published, No Local and Retain Handling.

    • Subscriber ids

    By default MQTTv5 is disabled, but can be enabled on a listener basis, for
    example listener.tcp.allowed_protocol_versions=3,4,5 would enable MQTT
    version 3.1, 3.1.1 and 5.0 on the TCP listener.

    MQTTv5 support has been added to the vmq_passwd, vmq_acl, vmq_webhooks
    plugins as well as the parts of the vmq_diversity plugin to support the
    MySQL, PostgreSQL, Redis and MongoDB authentication and authorization
    mechanisms. The Lua scripting language provided by the vmq_diversity plugin
    does not yet expose all MQTT 5.0 plugin hooks.

    The vmq_bridge plugin currently has no support for MQTTv5.

    !! Note !! that all MQTTv5 related features and plugins are in BETA and may
    still change if needed.

  • The metrics:

    mqtt_connack_not_authorized_sent
    mqtt_connack_bad_credentials_sent
    mqtt_connack_server_unavailable_sent
    mqtt_connack_identifier_rejected_sent
    mqtt_connack_unacceptable_protocol_sent
    mqtt_connack_accepted_sent

    Have been merged into a single metric mqtt_connack_sent and the various MQTT
    3.1.1 return codes have been mapped into labels. So for example
    mqtt_connack_sent with the label return_code=success replaces
    mqtt_connack_accepted_sent.

  • Added on_message_drop hook that is called for every message dropped due to
    exceeding the MQTTv5 max_packet_size property, hitting the message expiry,
    or when load shedding when enqueing messages.

  • Fix ordering bug in webhook subscribe topic authentication and topic rewrites
    (#823)

  • Fix issue when terminating the vmq_server application (#828).

  • Make VerneMQ build on SmartOS / Illumos / Solaris.

  • Ensure strings passed from Lua to the logger are escaped (#864).

  • Handle Mongo Date / ISODate datatype properly in Lua / vmq_diversity
    (#857).

  • Optimize subscribe/unsubscribe operations for large fanout cases.

  • Allow non-standard MQTT version 131 (MQTT 3.1 bridge) by default (this was
    accidentally changed in VerneMQ 1.4.0).

  • Improve error messages returned by the vmq_diversity plugin so it's easier
    to understand and debug authentication and authorisation issues.

  • Improve performance for looking up queue processes.

  • Make VerneMQ run on Erlang/OTP 21. To do this we had to upgrade rebar3 to
    version 3.6.0 and lager to version 3.6.3. We also removed the eper
    dependency and suppressed some new warnings due to erlang:get_stacktrace/0
    having been deprecated in Erlang/OTP 21.

  • The bridge plugin (vmq_bridge) now has an option to queue outgoing message
    in case the network connection disappears. This is configurable with the
    max_outgoing_buffered_messages setting on a bridge. In addition the bridge
    now has a simple cli interface under vmq-admin bridge show. This work was
    kindly sponsored by Diacare-Soft(http://diacare-soft.ru).

  • Fix multiple message retry issues in the MQTT client used by vmq_bridge.

  • Fix issue where the message ordering wasn't preserved after a client reconnect.

  • Add experimental vmq_swc plugin that provides an alternative to the existing
    vmq_plumtree for metadata storage and replication. One must compile VerneMQ
    with make swc to generate a release containing the vmq_swc plugin.

  • Remove unused vmq_bridge ssl capath config option. This was never used
    internally.

Don't miss a new vernemq release

NewReleases is sending notifications on new releases.