emqx/apps/emqx_exhook
Thales Macedo Garitezi 0020cf592f
Merge remote-tracking branch 'origin/master' into build-with-mix-mkII
2021-12-28 11:28:40 -03:00
..
docs fix: typo takeovered -> takenover 2021-12-07 16:06:23 +01:00
etc refactor(emqx_exhook): refactore exhook and add api module 2021-12-23 17:51:13 +08:00
include fix: typo takeovered -> takenover 2021-12-07 16:06:23 +01:00
priv/protos feat(exhook): expose headers for on_messages_publish hook 2021-12-09 15:06:17 +08:00
src refactor(emqx_exhook): refactore exhook and add api module 2021-12-23 17:51:13 +08:00
test refactor(emqx_exhook): refactore exhook and add api module 2021-12-23 17:51:13 +08:00
.gitignore refactor(exhook): adapt to the hocon schmea 2021-08-03 14:06:58 +08:00
README.md refactor(exhook): adapt to the hocon schmea 2021-08-03 14:06:58 +08:00
rebar.config chore(mix): simplify build by using rebar3 for umbrella apps 2021-12-22 09:40:01 -03:00

README.md

emqx_exhook

The emqx_exhook extremly enhance the extensibility for EMQ X. It allow using an others programming language to mount the hooks intead of erlang.

Feature

  • Based on gRPC, it brings a very wide range of applicability
  • Allows you to use the return value to extend emqx behavior.

Architecture

EMQ X                                      Third-party Runtime
+========================+                 +========+==========+
|    ExHook              |                 |        |          |
|   +----------------+   |      gRPC       | gRPC   |  User's  |
|   |   gPRC Client  | ------------------> | Server |  Codes   |
|   +----------------+   |    (HTTP/2)     |        |          |
|                        |                 |        |          |
+========================+                 +========+==========+

Usage

gRPC service

See: priv/protos/exhook.proto

CLI

Example

See: https://github.com/grpc-ecosystem/awesome-grpc

Thanks