The Development Work for EMQX 5.0 is in Full Swing - EMQX Newsletter 202107
EMQX development work is in full swing this July. We have added some exciting features and made a breakthrough progress on the key tasks of version 5.0.
The new config file
Structure refactored
The new config structure will include only one file in HOCON format: the emqx.conf
. It will cover all configurations related to emqx, including configurations for EMQX core (the broker), and for other applications or plugins. Relying on the characteristics of HOCON syntax, we redesigned a hierarchical configuration structure. This version of the configuration file will be more readable, editable, and maintainable.
Support runtime hot reloading
Most configuration entries of EMQX will take effect at runtime after modification, not requiring a restart of the service. What’s more, there will be HTTP APIs supporting configuration changes, as well as reloading.
The Swagger UI
Swagger UI to visualise HTTP interface interactively
Swagger UI is a popular HTTP API documentation tool that is visible and interactive. We are refactoring the HTTP APIs to conform to the OpenAPI specification. An OpenAPI specification file will be generated after building EMQX and it will then be used by the Swagger UI to render the HTTP API documents. Now (5.0-alpha.3) you can access this interactive document page at http://127.0.0.1:18083/api-docs.
The New Gateways
We introduced the concept of “Protocol Gateway“, and put all the IoT protocols like LwM2M, CoAP, STOMP, MQTT-SN and ExProto into it. This facilitates the integration of the IoT protocols to EMQX broker.
The new architecture of EMQX gateway supports creating multiple instances for one protocol. And the configuration format of these protocols will be unified. In terms of the code structure, we’ve added a common transport layer for gateways to increase the code reusability, we’ve refactored some code of MQTT-SN gateway so that it is not coupled with the EMQX core anymore. More similar work was done for other gateways, stay tuned for more updates.
Progress on authentication and authorizations
The new authentication component has supported the enhanced authentication
, and authentication methods via HTTP and MongoDB. And we have improved the code for changing authentication methods via HTTP API.
The new authorization (an extension of the ACL concept) component now has support authorization methods via MySQL
, PgSQL
, MongoDB
, Redis
, and HTTP
.