emqx/apps/emqx_exhook
Zaiming Shi 73d02beace refactor(apps): Merge emqx_libs back to emqx
And move emqx app back to root level

After realising the challenges of developing plugins in standalone
rebar projects. it is perhaps more smooth to keep using emqx as
a rebar dependency
2020-12-04 19:58:58 +01:00
..
docs refactor(exhook): improve the exhook implementation 2020-10-31 10:24:28 +08:00
include refactor(exhook): improve the exhook implementation 2020-10-31 10:24:28 +08:00
priv refactor(exhook): improve the exhook implementation 2020-10-31 10:24:28 +08:00
src refactor(apps): Merge emqx_libs back to emqx 2020-12-04 19:58:58 +01:00
test refactor(exhook): improve the exhook implementation 2020-10-31 10:24:28 +08:00
.gitignore refactor(exhook): improve the exhook implementation 2020-10-31 10:24:28 +08:00
README.md refactor(exhook): improve the exhook implementation 2020-10-31 10:24:28 +08:00
rebar.config refactor(build): Deterministic code generation 2020-11-26 21:13:30 +01: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