Wave is a MQTT Broker, written in Erlang.
It implements most of MQTT features, and currently supports TCP and SSL transports (and soon WebSockets)
You can try it on iot.bour.cc.
A Docker image is also available on Docker hub.
- MQTT v1.3
- MQTT v1.3.1
- Qos 0, 1 & 2
- SSL
- WebSockets
- $SYS hierarchy
- monitoring
- access logs
- authentication
- ACLs
- administration interface
- plugins
prerequisites:
- redis
- erlang >= 17.2
$> git clone https://github.com/gbour/wave.git wave
$> cd wave && make
# 'make cert' generates sample self-signed certificate, required to start wave with default configuration
# you can alternatively provide your own
$> make cert
$> make run
NOTE: the build process is also generating a default self-signed certificate that you can replace later
Alternatively, you can use docker image available on Docker hub (along with official redis image):
$> docker pull redis:alpine
$> docker run --name redis-wave -d redis:alpine
$> docker pull gbour/wave:websockets
$> docker run --name wave -d --link=redis-wave -p 1883:1883 -p 8883:8883 gbour/wave:websockets
Now, you can try using ie mosquitto tools:
$> mosquitto_sub -h localhost -t foo/bar -v&
$> mosquitto_pub -h localhost -t foo/bar -m 'is it working?'
foo/bar is it working
Main developer: Guillaume Bour <[email protected]>
Wave is distributed under AGPLv3 license.