emqx/apps/emqx_exhook
Thales Macedo Garitezi afb65817c4 ci(mix): refactor to avoid conflicts
This introduces a refactoring that will hopefully help avoid conflicts with ongoing work
to migrate our build / CI tooling to Mix.
2024-07-03 14:37:25 -03:00
..
docs feat(exhook): provide meta data in `RequestMeta` 2022-04-23 19:45:34 +08:00
etc feat: generate a minimized emqx.conf 2022-05-31 19:20:27 +08:00
include chore: update copyright-year 2024-02-23 08:21:06 +01:00
lib perf: use manifest to track proto file compilation 2024-07-02 09:45:47 -03:00
priv/protos chore: update copyright-year 2024-02-23 08:21:06 +01:00
src chore: minimize oss/platform diff 2024-06-24 15:30:03 +02:00
test chore: update copyright-year 2024-02-23 08:21:06 +01:00
.gitignore fix(exhook): fix obsolete SSL files aren't deleted after the Exhook config update 2022-11-29 10:40:08 +08:00
README.md docs(README): EMQ X -> EMQX 2022-02-15 16:19:26 +01:00
mix.exs ci(mix): refactor to avoid conflicts 2024-07-03 14:37:25 -03:00
rebar.config style: erlfmt all `rebar.config` files and `bin/nodetool` 2023-12-29 09:08:03 +08:00

README.md

emqx_exhook

The emqx_exhook extremely enhance the extensibility for EMQX. It allow using an others programming language to mount the hooks instead 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