emqx/apps/emqx_exhook
Thales Macedo Garitezi 34d6dbca61
chore(mix): simplify build by using rebar3 for umbrella apps
By treating the apps in the umbrella as dependencies to be managed and
built by rebar3, we can simplify the maintenance of the release, at
the cost of increased build times: using Mix as before, it could track
changed files better than using rebar.  But the complexity and
possibility of discrepancies make it using rebar much more compelling.
2021-12-22 09:40:01 -03:00
..
docs fix: typo takeovered -> takenover 2021-12-07 16:06:23 +01:00
etc feat(exhook): expose process pool_size for grpc client 2021-12-09 15:06:18 +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 chore: fix elvis warnings 2021-12-09 15:06:18 +08:00
test chore: put the pool_size default value to avoid hot upgrade failure 2021-12-09 15:06:18 +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

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