Download Latest Version emqx-enterprise-6.0.0-amzn2023-amd64.tar.gz (99.6 MB)
Email in envelope

Get an email when there's a new version of emqx

Home / e5.10.1
Name Modified Size InfoDownloads / Week
Parent folder
emqx-enterprise-elixir-5.10.1-docker-arm64.tar.gz 2025-09-18 135.9 MB
emqx-enterprise-elixir-5.10.1-docker-amd64.tar.gz 2025-09-18 135.9 MB
emqx-enterprise-5.10.1-ubuntu24.04-arm64.tar.gz.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-ubuntu24.04-arm64.deb.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-ubuntu24.04-arm64.tar.gz 2025-09-18 89.7 MB
emqx-enterprise-5.10.1-ubuntu24.04-arm64.deb 2025-09-18 62.0 MB
emqx-enterprise-5.10.1-ubuntu24.04-amd64.tar.gz.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-ubuntu24.04-amd64.deb.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-ubuntu24.04-amd64.tar.gz 2025-09-18 92.2 MB
emqx-enterprise-5.10.1-ubuntu24.04-amd64.deb 2025-09-18 62.3 MB
emqx-enterprise-5.10.1-ubuntu22.04-arm64.tar.gz.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-ubuntu22.04-arm64.deb.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-ubuntu22.04-arm64.tar.gz 2025-09-18 89.6 MB
emqx-enterprise-5.10.1-ubuntu22.04-amd64.tar.gz.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-ubuntu22.04-arm64.deb 2025-09-18 62.2 MB
emqx-enterprise-5.10.1-ubuntu22.04-amd64.deb.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-ubuntu22.04-amd64.tar.gz 2025-09-18 92.3 MB
emqx-enterprise-5.10.1-ubuntu20.04-arm64.tar.gz.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-ubuntu22.04-amd64.deb 2025-09-18 62.5 MB
emqx-enterprise-5.10.1-ubuntu20.04-arm64.tar.gz 2025-09-18 92.0 MB
emqx-enterprise-5.10.1-ubuntu20.04-arm64.deb.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-ubuntu20.04-arm64.deb 2025-09-18 59.7 MB
emqx-enterprise-5.10.1-ubuntu20.04-amd64.tar.gz.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-ubuntu20.04-amd64.tar.gz 2025-09-18 94.6 MB
emqx-enterprise-5.10.1-ubuntu20.04-amd64.deb.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-macos15-arm64.zip.sha256 2025-09-18 65 Bytes
emqx-enterprise-5.10.1-ubuntu20.04-amd64.deb 2025-09-18 60.2 MB
emqx-enterprise-5.10.1-macos14-arm64.zip.sha256 2025-09-18 65 Bytes
emqx-enterprise-5.10.1-macos15-arm64.zip 2025-09-18 74.5 MB
emqx-enterprise-5.10.1-macos13-amd64.zip.sha256 2025-09-18 65 Bytes
emqx-enterprise-5.10.1-macos14-arm64.zip 2025-09-18 74.6 MB
emqx-enterprise-5.10.1-macos13-amd64.zip 2025-09-18 74.8 MB
emqx-enterprise-5.10.1-elixir-ubuntu22.04-amd64.tar.gz.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-el9-arm64.tar.gz.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-elixir-ubuntu22.04-amd64.tar.gz 2025-09-18 101.5 MB
emqx-enterprise-5.10.1-el9-arm64.rpm.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-el9-arm64.tar.gz 2025-09-18 89.3 MB
emqx-enterprise-5.10.1-el9-amd64.tar.gz.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-el9-arm64.rpm 2025-09-18 62.9 MB
emqx-enterprise-5.10.1-el9-amd64.tar.gz 2025-09-18 91.9 MB
emqx-enterprise-5.10.1-el9-amd64.rpm.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-el8-arm64.tar.gz.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-el9-amd64.rpm 2025-09-18 63.2 MB
emqx-enterprise-5.10.1-el8-arm64.rpm.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-el8-arm64.tar.gz 2025-09-18 91.3 MB
emqx-enterprise-5.10.1-el8-amd64.tar.gz.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-el8-arm64.rpm 2025-09-18 62.8 MB
emqx-enterprise-5.10.1-el8-amd64.rpm.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-el8-amd64.tar.gz 2025-09-18 93.7 MB
emqx-enterprise-5.10.1-el8-amd64.rpm 2025-09-18 63.3 MB
emqx-enterprise-5.10.1-docker-arm64.tar.gz 2025-09-18 126.7 MB
emqx-enterprise-5.10.1-debian13-arm64.tar.gz.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-docker-amd64.tar.gz 2025-09-18 126.7 MB
emqx-enterprise-5.10.1-debian13-arm64.tar.gz 2025-09-18 90.7 MB
emqx-enterprise-5.10.1-debian13-arm64.deb.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-debian13-amd64.tar.gz.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-debian13-arm64.deb 2025-09-18 59.8 MB
emqx-enterprise-5.10.1-debian13-amd64.deb.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-debian13-amd64.tar.gz 2025-09-18 92.5 MB
emqx-enterprise-5.10.1-debian13-amd64.deb 2025-09-18 60.4 MB
emqx-enterprise-5.10.1-debian12-arm64.tar.gz.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-debian12-arm64.deb.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-debian12-arm64.tar.gz 2025-09-18 89.4 MB
emqx-enterprise-5.10.1-debian12-amd64.tar.gz.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-debian12-arm64.deb 2025-09-18 59.6 MB
emqx-enterprise-5.10.1-debian12-amd64.tar.gz 2025-09-18 91.9 MB
emqx-enterprise-5.10.1-debian12-amd64.deb.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-debian12-amd64.deb 2025-09-18 60.2 MB
emqx-enterprise-5.10.1-debian11-arm64.tar.gz.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-debian11-arm64.tar.gz 2025-09-18 89.1 MB
emqx-enterprise-5.10.1-debian11-arm64.deb.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-debian11-arm64.deb 2025-09-18 59.6 MB
emqx-enterprise-5.10.1-debian11-amd64.tar.gz.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-debian11-amd64.tar.gz 2025-09-18 91.7 MB
emqx-enterprise-5.10.1-debian11-amd64.deb.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-amzn2023-arm64.tar.gz.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-debian11-amd64.deb 2025-09-18 60.2 MB
emqx-enterprise-5.10.1-amzn2023-arm64.rpm.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-amzn2023-arm64.tar.gz 2025-09-18 89.3 MB
emqx-enterprise-5.10.1-amzn2023-arm64.rpm 2025-09-18 62.9 MB
emqx-enterprise-5.10.1-amzn2023-amd64.tar.gz.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-amzn2023-amd64.rpm.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-amzn2023-amd64.tar.gz 2025-09-18 91.9 MB
emqx-enterprise-5.10.1-amzn2023-amd64.rpm 2025-09-18 63.2 MB
emqx-enterprise-5.10.1-amzn2-arm64.tar.gz.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-amzn2-arm64.rpm.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-amzn2-arm64.tar.gz 2025-09-18 88.8 MB
emqx-enterprise-5.10.1-amzn2-amd64.tar.gz.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-amzn2-arm64.rpm 2025-09-18 64.6 MB
emqx-enterprise-5.10.1-amzn2-amd64.tar.gz 2025-09-18 90.9 MB
emqx-enterprise-5.10.1-amzn2-amd64.rpm.sha256 2025-09-18 64 Bytes
emqx-enterprise-5.10.1-amzn2-amd64.rpm 2025-09-18 64.9 MB
emqx-enterprise_5.10.1_arm64.snap 2025-09-18 80.8 MB
emqx-enterprise_5.10.1_amd64.snap 2025-09-18 83.3 MB
docker-image-tag 2025-09-18 45 Bytes
EMQX Enterprise 5.10.1 source code.tar.gz 2025-09-18 5.8 MB
EMQX Enterprise 5.10.1 source code.zip 2025-09-18 7.5 MB
README.md 2025-09-18 13.1 kB
Totals: 98 Items   4.1 GB 13

Enhancements

Performance

  • #15907 Improve system memory usage. Fields such as client ID, username, password, and topic are copied into new binaries (when more than 64 bytes) instead of being slices from the raw packet to reduce 'binary' part of memory usage in Erlang VM.

  • #15899 Authorization (authz) cache is now cleared immediately when a client disconnects, reducing unnecessary memory consumption.

Observability

  • #15499 Added a force deactivate alarm API endpoint to allow administrators to forcibly deactivate active alarms.

  • #15364 Added HTTP header configuration items to the OpenTelemetry integration to adapt to collectors with HTTP authentication.

Access Control

  • #15294 Enhanced LDAP authentication and authorization. LDAP authorization now supports an extended ACL rule format using JSON, in addition to the existing simple topic list. ACL rules can also be fetched from LDAP during authentication based on client information, and are cached in the client’s metadata to avoid repeated LDAP queries during authorization.

  • #15349 Optimized external resource management for authentication and authorization. Previously, EMQX could remain connected to a resource configured for a disabled authentication or authorization provider.

Data Integration

  • #15360 Added support for writing data files in Parquet format for Amazon S3 Tables Action.

  • #15387 Added rate limiting to Kinesis Producer Connector and Action health checks to comply with AWS API quotas and improve cluster behavior.

  • Health check calls to ListStreams and DescribeStream are now limited to 5/s and 10/s per Connector, respectively, matching AWS rate limits.

  • A distributed limiter is coordinated by a core node in the cluster to enforce these limits consistently.
  • If a health check is throttled or times out, the Connector or Action will now retain its previous status instead of being marked as disconnected.

Also introduced a new resource_opts.health_check_interval_jitter, which adds a uniform random delay to resource_opts.health_check_interval to reduce the chance of multiple Actions under the same Connector running health checks at the same time.

  • #15542 Upgraded our erlcloud library to 3.8.3.0. This allows one to setup a S3 Connector without specifying Access Key Id and Secret Access Key, so long as the EC2 instance EMQX is running in has the correct IAM permissions to read/write to the configured bucket(s).

  • #15845 The static_clientids configuration for the MQTT Connector now supports specifying a username and password for each client ID. This is particularly useful for scenarios like connecting to Azure IoT Hub, where each device (client ID) requires a unique set of credentials. This enhancement helps ensure successful connections across multiple nodes in a clustered environment.

  • #15944 Improved the information returned when a resource is marked as disconnected for the following Connectors: LDAP, Syskeeper, IoTDB, Snowflake (aggregated), JWKS Authentication.

  • #15911 Now, for the HTTP Action, the HTTP request timeout is taken to be the same as resource_opts.request_ttl. Previously, it was a fixed, non-configurable value of 30 seconds.

  • #15371 Added tags fields to the return of GET /actions_summary and GET /sources_summary, and to the fallback actions returned in GET /actions/:id.

CLI

  • #15399 The node_dump tool now exports the current system configuration in HOCON format, with sensitive information (such as passwords and secrets) automatically redacted for security.

Bug Fixes

API

  • #15547 Resolved an issue where EMQX would fail to process HTTP requests with large bodies (e.g., 10MB) in the REST API.

  • #15797 To improve compatibility with EMQX 4.x, the encoding parameter has been reintroduced in the batch publish HTTP API (/api/v5/publish/bulk) as an alias for payload_encoding. This change addresses migration issues for users relying on the original encoding parameter, and ensures existing integrations using EMQX v4 APIs can continue working without requiring software-level changes.

Observability

  • #15785 Resolved a crash that occurred when MQTT usernames containing non-ASCII characters were used in formatting network congestion alarm messages.

Gateway

  • #15342 Fixed a crash in the NATS gateway caused by client info override templates referencing undefined packet fields. The system now returns an empty binary instead of undefined atom.

Core MQTT Functions

  • #15361 Fixed a function_clause error when parsing a malformed User-Property pair with invalid (too short) length.

  • #15396 Removed redundant cleanup operations for shared subscriptions of disconnected clients. These operations were prone to crashes under high disconnect volumes and could lead to inconsistencies in the global broker state.

  • #15416 Fixed occasional warning-level log events and crashes during session expiration of WebSocket connections. This issue was introduced by recent WebSocket performance improvements. If did not affect broker capacity, but produced log entries like the following:

  • error: {function_clause,[{gen_tcp,send,[closed,[]],[{file,“gen_tcp.erl”},{line,966}]},{cowboy_websocket_linger,commands,3,[{file,“cowboy_websocket_linger.erl”},{line,665}]},...
  • message: {tcp,#Port<0.364>,<<136,130,...>>}, msg: emqx_session_mem_unknown_message

  • #15872 Eliminated warning log unclean_terminate when disconnected after CONNACK is sent with a non-zero reason code.

  • #15518 Resolve a race condition that may lead to accumulating inconsistencies in the routing table and shared subscriptions state in the cluster when a large number of shared subscribers disconnect simultaneously.

Data Integration

  • #15394 Fixed a rare race condition where Action metrics could become inconsistent due to unexpected asynchronous replies.

  • #15603 Fixed an issue in the MQTT bridge where a stale connection could be shown as Connected and would not automatically reconnect.

  • #15826 Improved Kafka consumer connector health check behavior with restricted ACLs. Previously, Kafka Consumer Connector health checks could fail if the configured user lacked permission to access the internal ____emqx_consumer_probe consumer group used for the check. With this fix, if the Kafka broker returns an "ACL denied" response, EMQX will treat the connection as healthy.

  • #15827 Fixed atom and process leaks in the GreptimeDB driver.

Fixed a function_clause error that could arise if certain incorrect write syntaxes were used in GreptimeDB Actions.

  • #15836 Enriched the returned information when a Kafka Consumer Source fails to be added, for example, due to denied topic ACLs.

  • #15850 Fixed an issue with the MQTT bridge when a stale connection was displayed as Connected and the connection was not re-established.

  • #15866 Upgrade Kafka producer lib wollf to 4.0.12 to improve handling of temporarily missing partitions in Kafka metadata responses.

In rare race conditions, Kafka may return an incomplete partition list. Previously, this was only handled when a topic was recreated with fewer partitions, but not when partitions were temporarily missing. This gap could cause the partition producer to stall and block shutdown indefinitely.

  • #15906 Upgraded Kafka producer library Wolff from 4.0.12 to 4.0.13, which adds handling for the record_list_too_large error in ProduceResponse.

  • #15902 Upgrade MQTT client library to 1.13.8

This improves MQTT bridge connectivity with: - Connector will automatically reconnect when peer broker does not reply PINGRESP. - Bridge over TLS failure is more promptly handled if connection breaks while waiting for CONNACK.

  • #15910 Fixed an issue with Connectors where a pool of workers could fail to recover from a failure if multiple workers crashed simultaneously in large worker pools.

Connectors affected and fixed:

  • MySQL
  • PostgreSQL
  • Oracle
  • SQLServer
  • TDEngine
  • Cassandra
  • Dynamo
  • HTTP
  • Couchbase
  • GCP PubSub
  • Snowflake

Upgraded gun and related dependencies to 2.1.0.

Deployment

  • #15553 Fixed an issue in the Helm chart where deploying EMQX with default values started multiple replicas and caused all nodes except one to crash. The chart now defaults to a single replica, since clustered deployments require an Commercial License.

  • #15712 Fix node boot-up failure during rolling upgrade from older versions (before 5.9)

In previous EMQX versions (before 5.9), a bug in the ZIP timestamp encoder could store an invalid “seconds” value in archive entries (values corresponding to the 30th or 31st 2-second slot in DOS time format).

  • #15863 Fixed license quota alarm text.

Clustering

  • #15788 Fixed etcd cluster discovery issue. Resolved an issue where EMQX nodes from different clusters could mistakenly join each other when using a shared etcd server. This was caused by a bug in the etcd client library.

Rate Limit

  • #15794 Improved the behavior of connection rate limit updates to ensure that changes (e.g., to burst rate or rate thresholds) are applied immediately after the listener configuration is updated. Previously, parts of the internal limiter state were not refreshed correctly, which could result in rate limits appearing stricter than configured.

Smart Data Hub

  • #15810 Introduced spb_{en,de}code functions to correct handling of bytes_value Metrics. Fixed an issue with the original sparkplug_{en,de}code functions, which did not base64 encode/decode bytes_value metric values as required by the Protobuf specification. To address this, new spb_{en,de}code functions have been introduced for correct encoding/decoding of such fields. The old sparkplug_{en,de}code functions are now deprecated to maintain backward compatibility.

Access Control

  • #15818 Corrected handling of {allow|deny, all} ACL rules.

Previously, these rules were internally translated to match #, which incorrectly failed to match topics prefixed with $ (e.g. $testtopic/1) due to MQTT spec restrictions. Now, a special internal value is used to ensure {allow|deny, all} rules correctly match any topic, including $-prefixed ones.

  • #15844 Added validation to forbid adding empty usernames to the built-in database authenticator. Such users cannot be deleted via the HTTP API later, since they mess up the API path.

If you have such an user and wish to delete it, run the following in an EMQX console:

erlang mria:transaction(emqx_authn_shard, fun() -> mnesia:delete(emqx_authn_mnesia, {'mqtt:global',<<>>}, write) end).

Breaking Changes

  • #15752 Listener connection rate limits (max_conn_rate and max_conn_burst) are now enforced per listener rather than per acceptor, restoring the pre-5.9.0 behavior. As a result, configurations from versions 5.9.0, 5.9.1 and 5.10.0 are incompatible: specified rates must be scaled up by the number of acceptors configured for respective listeners.
Source: README.md, updated 2025-09-18