v2.5.0-rc.1
Pre-release
Pre-release
·
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
lavinmqperfnow supports MQTT #983lavinmqperfAll clients are now waited for to be connected before publishing/consuming #1120- The
/api/queuesendpoint now exposesmessages_readyandmessages_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
RetainStorehas been fixed #be4e5032 - The
consumer_offsetfile 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_ackadded, and fixed a bug regardingdeliver. #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_bytesare deprecated in favour of
messages_ready,message_bytes_ready,messages_unacknowledged,message_bytes_unacknowledged
and will be removed with the next major version. #1121