The Development Work for EMQ X 5.0 is in Full Swing - EMQ X Newsletter 202107
EMQ X 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
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 EMQ X 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 EMQ X 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 EMQ X 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 EMQ X broker.
The new architecture of EMQ X 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 EMQ X 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