CI

Mosquitto Plugin

A simple way to generate ACL and PASSWORD plugins for usage with the mosquitto broker.

Requires that mosquitto_plugin.h mosquitto.h files are installed on the system, on linux systems this is usually achieved through the mosquitto-dev packages. Not tested on windows.

To pass additional (clang) arguments to the clang invocation from bindgen, set MOSQUITTO_PLUGIN_CLANG_EXTRA_ARGS for e.g a special search path for the mosquitto headers: "-I ../mosquitto-2.0.4/include".

The optional functions are not implemented here.

Supported

- ease of access to write own mosquitto plugins
- auth_opt_<key> value in the mosquitto_conf
- mutable access to the structure between calls
- ACL implementations
- username/password implementatations

Example usage

There is an example usage in the github repo under "examples/acl" folder.

Basic authentification

Simple example that allows only password/username combos where the password is reversed (and no credentials as well, since those do not invoke ACL calls, and thus needs to be configured in a mosquitto configuration)

It also only allows messages on the topic specified in the mosquitto config as authopttopic

See the provided examples/mosquitto-acl.conf for details.

Start build and run:

cargo build --example basic-auth mosquitto -c examples/basic-auth.conf

Extended authentification

Example how to negotiate authentification with a client with v5 AUTH packages.

Start build and run:

cargo build --example extended-auth mosquitto -c examples/extended-auth.conf