Skip to content

Releases: moquette-io/moquette

Release 0.18

27 Dec 14:38
Compare
Choose a tag to compare

Features

MQTT5 protocol version support. Almost all features are supported except:

  • enhanced authentication
  • maximum packet size limitation
  • server reference
  • server assigned client ID
    Refer to #695 for the details.

Breaking changes

Support for BugSnag and Librato metrics were dropped, so the settings: use_metrics, metrics.librato.*, use_bugsnag, bugsnag.token are NOT anymore recognized. Please clean your moquette.conf if you used. In a future version will be developed some form of observability.

Deprecations

Default persistence for session queues (selected by persistent_queue_type) switched from H2 to segmented, leveraging memory mapped pages instead of the BTree offered by H2. Persisting queue in H2 is planned for complete removal.

Dependencies

  • Updated Netty to 4.1.116 and tcnative to 2.0.69 (#886).
  • Updated H2 to 2.1.214 (#886).

Release 0.17

02 Aug 10:18
Compare
Choose a tag to compare

Features

  • Introduced new fluent configuration API to avoid direct usage of constants to configure broker's properties (#761).
  • Introduced new persistent_client_expiration settings to limit the time of persistent sessions life (#739).
  • Added new method disconnectClient to Server's API to programmatively disconnect a client (#744).
  • Updated the InterceptHandler SPI interface with the addition of new onSessionLoopError callback method to receive the error notifications that happens in session event loops (#736).
  • Added new moquette.session_loop.debug JVM property to enable the checking of sessions event loops to proper sessions (#714).
  • New persistent queue implementation that use segments in memory mapped files. Can be selected by the new persistent_queue_type setting. The values can be h2 for old implementation based on H2 stoge or segmented for the new implementation (disabled by default) (#691, #704).
  • Introduced the ability to specify the flush interval for IO write operations, changing the default, to an immediate flush. New settings buffer_flush_millis can specify the interval in milliseconds, 0 for immediated flush or -1 to let the networking doing flush on write buffer full (#738).

Deprecations

  • immediate_buffer_flush replaced by buffer_flush_millis (#738).
  • persistent_store was separated into enablement of persistence with persistence_enabled and the path data_path (#706).

Fixes

  • Resolved bad perfomance issue (#633) when adding many subscriptions to few topics (#758).
  • Resolved performance issue(#629) on subscription trees wide and flat (#630).

Dependencies

  • Updated Netty to 4.1.93 and tcnative to 2.0.61 (#755).

Release 0.16

06 Jan 11:08
Compare
Choose a tag to compare
  • [build] drop generation of broker-test, removed distribution and embedding_moquette modules from deploy phase (#466)
  • [fix] introduces sessions event processors to segregate changes to a session in one single thread, simplifying concurrency and code (#631)
  • [util] add collection of telemetry data (#700)

Release 0.15

23 Jul 08:48
Compare
Choose a tag to compare

Notable Changes

  • When the inflight window is emptied now is forced a flush to be sure the clients sees the messages immediately #603
  • switched from JCentral from JFrog to Maven Central as deployment repository #606
  • introduced rules to free reference counted buffers to avoid memory leaks #600
  • explicit check MessageId doesn't overflow #586
  • changed the flow of PUBREC managment giving precedence to PUBREC flow over queueed messages to send #588

Bugfixes

  • Various fixes to inflight zone management related to counters and missed timeouts restarts for resends #604, #601, #582, #584
  • Re-enabled not running tests #580
  • Fixed serialization of messages to H2 introducing custom ValueTypes #592
  • Stop interceptor's thread on broker shutdown #575
  • Fixed potential NPE when draining messages from Session #570

Dependencies updates

  • Netty 4.1.59 #574
  • Moved netty-tcnative to boringssl static because distributions doesn't have anymore OpenSSL 1.0.0 and can't be dynamically linked

Release 0.14

22 Jan 11:24
Compare
Choose a tag to compare

Notable changes

  • switched back to Maven from Gradle and use maven wrapper
  • moved all connect process flow into connection class, to avoid spread the connection logic in subsystems like SessionRegistry. (#548)
  • switched temp files in unit test to temp folder managed (#549)
  • switched to JUnit 5
  • added connection and client Id to each log line

Bugfixes

  • fix bug in race condition between the shutdown of a client and the connect of another with same clientId (#561)
  • fix recreate sessions when server restarts (#563)
  • fixed NPE due to TNode processing before CNode (#564)

Dependencies updates

  • paho 1.2.5
  • netty 4.1.53
  • junit 5.7.0

Release v.012.1

03 Mar 09:09
Compare
Choose a tag to compare

Bugfix release for bad push of queue messages

Release v.012

01 Dec 14:15
Compare
Choose a tag to compare
  • Dropped Hazelcast because at the moment Moquette is not designed to be clusterizable
  • Rewritten completly the broker to introduce the concept of MqttConnection
  • Dropped suppoert for MapDB and keeped only H2 MvStore for persistence

Release v0.11

10 Jun 09:57
0bf35a7
Compare
Choose a tag to compare
Updated readme for version 0.11

Release v0.10

30 Jun 08:07
Compare
Choose a tag to compare
Release 0.10

0.9

11 Jan 21:09
Compare
Choose a tag to compare
0.9
  • Move the protocol processing to concurrent FSM.
  • Fixes for tests