emqx/apps/emqx_exhook
Zaiming (Stone) Shi c157a16907 Merge remote-tracking branch 'origin/main-v4.3' into main-v4.4 2022-02-26 01:05:06 +01:00
..
docs docs: EMQ X -> EMQX 2022-02-15 22:12:46 +01:00
etc Merge remote-tracking branch 'origin/main-v4.3' into main-v4.4 2022-02-26 01:05:06 +01:00
include chore: update copyrights 2021-04-23 20:43:00 +02:00
priv feat(exhook): expose process pool_size for grpc client 2021-11-15 09:50:32 +08:00
src chore(exhook): bump version to 4.4.0 2021-11-15 09:50:32 +08:00
test chore: put the pool_size default value to avoid hot upgrade failure 2021-11-15 09:50:32 +08:00
.gitignore chore(apps): Sync again all apps 2020-12-07 21:30:21 +01:00
README.md docs(README): EMQ X -> EMQX 2022-02-15 16:15:25 +01:00
rebar.config chore: upgrade grpc to 0.6.4 2021-11-15 09:50:32 +08:00

README.md

emqx_exhook

The emqx_exhook extremly enhance the extensibility for EMQX. 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

EMQX                                      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