Skip to content

v2.5.0-rc.1

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Aug 09:18
· 527 commits to main since this release

This release brings significant improvements across multiple areas of LavinMQ. Key focus areas include major clustering and replication enhancements for better reliability and performance, a new light mode UI theme alongside numerous user interface improvements, substantial performance optimizations including faster boot times and improved memory management, and enhanced tooling with expanded MQTT support. The release also includes important bug fixes.

Added

  • Boot time is greatly improved by storing the message count in a file alongside the message segment #1163
  • Way faster initial replication follower synchronization by caching file checksums #1088
  • Added Light mode for the UI 46b00e4c
  • Shovels can now be paused and resumed #1103 & #1151
  • Ability to limit the number of consumers per channel #1106
  • lavinmqperf now supports MQTT #983
  • lavinmqperf All clients are now waited for to be connected before publishing/consuming #1120
  • The /api/queues endpoint now exposes messages_ready and messages_unacknowledged #1121
  • Alpine Linux compatibility and a corresponding Dockerfile (packaging/alpine/Dockerfile) #1115
  • The container image now includes an SBOM and provenance information #54a3cc21
  • Support for MQTT 3.1.0 clients
  • Added --durable, --arguments and --no-wait parameters to lavinmqperf queue-count #6b8b8c91
  • Persist shovel pause state across broker restarts #1151

Changed

  • Priority message store refactored to use one message store per priority, big performance/memory gain #1156
  • Refactored clustering and replication to improve reliability and performance #1164
  • Improved consumer fairness and performance for AMQP #1173
  • Socket write buffer is now flushed only when required, big performance gain #29ab3436
  • MFiles are no longer included in coredumps #1128
  • Federation now respects max-hops #1130
  • UI: The user form in the UI now has a password visibility toggle and a password generation button #1150
  • Prometheus CPU system/user time metrics are now ever-increasing counters #0509b547
  • Channel mode display improved to be more descriptive #1188
  • Crystal 1.17.0 is now required #4b0fa247
  • Improved queue and exchange features display with tooltips and styling #3fb458ec
  • UI: Removed fixed table layout for details table for better responsiveness #eff8575b

Fixed

  • MQTT clients can now publish messages with a payload larger than 64 KiB
  • Fixed a bug where reconnecting a MQTT client with unacked messages was being blocked #1102
  • Refactoring and performance improvments of header exchanges #1112
  • Delete orphan acks files on start and shutdown #1175
  • A file descriptor leak in MQTT's RetainStore has been fixed #be4e5032
  • The consumer_offset file is now closed and deleted when the message store is closed or deleted #a3b746cb
  • The shovel API no longer returns a 422 error when resuming a running shovel #1157
  • The user not found error is no longer logged twice #1109
  • Metrics - deliver_no_ack & get_no_ack added, and fixed a bug regarding deliver. #1146, #1119, #1099
  • lavinmqctl now validates access to the unix socket #1181
  • Verification of the default password hash on launch #1078
  • UI: The unbind button in the bindings listing in the queue view has been fixed #1145
  • UI: The behavior of the multi-control popup has been improved #1144
  • Fixed dead letter loop detection to prevent infinite loops #1206
  • Fixed pagination bounds check to prevent out-of-bounds pages #1207
  • Fixed bug where x-cache-ttl was reset when expiring messages with delayed exchange #24f74bd7
  • Validate input for operator policies #1199
  • Fixed unsafe shared body buffer in MQTT publish #de730e77
  • Fixed bug where messages larger than 64kB couldn't be published #cd77b3f0

Deprecated

  • queue metrics ready, ready_bytes, unacked, unacked_bytes are deprecated in favour of
    messages_ready, message_bytes_ready, messages_unacknowledged, message_bytes_unacknowledged
    and will be removed with the next major version. #1121