Multi-language support

Since 4.1, EMQ X provides multi-language support. It allows users to use Python, Java or other programming languages to handle EMQ X’s hooks, or parse your private protocol on TCP/UDP transport. In this way, you can customize EMQ X with other programming languages.

Tip

  • In 4.1 and 4.2, this functional was implemented using erlportIntroduction - 图1 (opens new window) as the low-level communication support, and it was upgraded to gRPCIntroduction - 图2 (opens new window) in the 4.3. These two version interface are not compatible. Please check the corresponding documentation for the older implemented.

  • After 4.3, all hooks are publicly supported.

Extension Hook

The Extension Hook is supported by the emqx-exhook plugin. It allows users to process EMQ X’s Hooks using other programming languages. For example:

  • Check the login permission for a client.
  • Check the PUB/SUB operation privileges for a client.
  • Bridge or Store a message

See: Extension Hook.

Extension Protocol

The Extension Protocol is supported by the emqx-exproto plugin. It allows users to implement their private access protocol using other programming languages. In the emqx-exproto, you can:

  • Establish a connection based on TCP/SSL/UDP/DTLS
  • Subscribe a topic to receive messages and deliver it to your client
  • Parse bytes and publish it to EMQ X

Historical Legacy

Prior to EMQ X 4.1, only Lua support was included, and it was implemented by emqx-lua-hook. This plugin only supports handling of hooks, not protocol access.

See: Lua Support.