Early Access Preview of HiveMQ, the first enterprise-grade MQTT broker
Written by The HiveMQ Team
Category: HiveMQ Release
Published: July 16, 2018
HiveMQ is one of the first MQTT Brokers to fully implement the MQTT 5 specification and is the first enterprise-grade MQTT broker available for MQTT 5.
We are proud to announce the HiveMQ 4 Early Access Program (EAP). The HiveMQ 4 EAP is free of charge and without limitations.
You can download the EAP directly, or get started straight away with the HiveMQ 4 EAP on Docker Hub. To obtain HiveMQ 4 EAP, Scroll down to the download section of this page. Or if you are docker user: try docker.
The HiveMQ 4 EAP is the perfect way to get your feet wet with MQTT 5 and it is particularly useful if you are developing client libraries or want to test MQTT 5 with libraries such as MQTT Bee or Eclipse Paho.
Don’t use HiveMQ 4 EAP in production yet. The official, production ready release of HiveMQ 4 will be available in later this year.
MQTT 5 Feature Support
|Support for all MQTT 5 packets|
|Full Cluster Support with all MQTT 5 features|
|MQTT 3 and MQTT 5 compatibility|
|Custom Headers and User Properties|
|Reason Codes & Negative ACKs|
|Payload Format & Content Types|
|Request / Response|
|Optional Server Feature Availability|
|Enhanced Authentication Mechanisms|
|Maximum Packet Size|
|Assigned Client Identifiers|
|Request Problem Information|
Full MQTT 5 Packet Support
HiveMQ 4 has the most performant MQTT 5 packet parsers on the market. All MQTT packets, including the new AUTH MQTT packet, are fully supported.
Full Cluster Support with All MQTT 5 Features
The HiveMQ 4 EAP comes with complete cluster support and all MQTT 5 features are available in a resilient, high-performance and fault-tolerant way.
MQTT 3 and MQTT 5 Compatibility
Connect MQTT 3.1.1 and MQTT 5 devices simultaneously. HiveMQ passes messages to all subscribers transparently and converts between the two protocols under the hood.
Custom Headers and User Properties
The highly anticipated user-properties feature of MQTT 5 is available in the new HiveMQ version. This feature lets you add arbitrary data to virtually any MQTT packet.
Support for Payload Format and Content Types
Payload format indicators and content types are fully supported. Your MQTT client can specify MIME types and whether binary or text payloads are carried over.
If the broker has to disconnect MQTT clients, server-sent DISCONNECT packets are used. There is no need to puzzle out whether the disconnect was broker-induced or the connection was lost along the way.
HiveMQ 4 EAP now utilizes flow control for back pressure handling. Try MQTT Bee to see it in action with a high-performance MQTT 5 library.
To give clients a chance to reconnect in a specific time interval, Last Will and Testament messages can now be delayed.
MQTT 5 session expiry is fully supported. HiveMQ can clean up resources (including offline messages and subscriptions) based on the expiry interval sent by the client.
When a message expires, HiveMQ cleans up the resources, removes the expired message from all client offline queues, and deletes the corresponding retained message. Expired messages are never sent to any client.
Given that HiveMQ was a pioneer in introducing Shared Subscriptions (even for MQTT 3), Shared Subscriptions are, of course, fully supported for MQTT 5.
All new MQTT 5 subscription options are supported: Retain as Published, No Local, Retain Handling. This adds maximum flexibility for any MQTT 5 client’s subscriptions.
Maximum Packet Size
The HiveMQ 4 EAP respects the maximum packet size limitation of MQTT clients and can restrict the maximum packet size sent by the clients.
Assigned Client Identifiers
If a client doesn’t provide a client identifier, HiveMQ assigns one. The client receives a CONNACK packet with the assigned client identifier during the connection process.
Reason Codes and Negative Acknowledgements
Debugging MQTT clients remotely was never easier. The HiveMQ 4 EAP supports a vast number of reason codes for negative acknowledgements and meaningful reason strings are implemented, too.
Optional Server Feature Availability
HiveMQ now indicates features that are not available for specific clients in the CONNACK message. For example, if you disable retained messages administratively, the HiveMQ 4 EAP notifies your clients.
- HiveMQ 4 EAP is trimmed down to contain only those features that are useful for testing MQTT 5.
- Subscription identifiers are not supported (Indicated by Optional Server Feature Availability)
- Client to broker topic aliases and broker to client topic aliases are not supported. (Indicated by optional server feature availability).
- The maximum size of user properties per MQTT packet is 5 MB.
- No plugin system
- No performance optimizations
- All shared subscriptions on the same topic receive retained messages, not just the first subscription for a topic
- Retained messages are sent to a subscriber, even if the No Local flag is set and the client was the original publisher.
- HiveMQ startup can be slow (> 10s)
Trying out the HiveMQ 4 EAP is extremely easy.
Option 1: Docker
If you’re a Docker user, simply enter this command in your terminal:
The full README with all options and additional explanations is available on DockerHub.
Option 2: Direct Download
To download the HiveMQ 4 EAP directly, just download the .zip file, unpack it and execute the
run.sh script for macOS/Linux or the
run.bat script for Windows.
Download HiveMQ 4 EAP now
Please send your feedback to firstname.lastname@example.org. Let us know which client libraries you tested successfully against the HiveMQ 4 EAP. If anything didn’t work as smoothly as you expected, please tell us, we’re here to help.