A lightweight MQTT 3.1.1 broker implemented in MoonBit.
Dependencies
docker build --platform linux/amd64 -t moonbit-mqtt-broker-dev .
scripts/moon-docker.sh run --target native src/cmd/broker -- \
--listen 0.0.0.0:1883mosquitto_sub -h 127.0.0.1 -p 1883 -t 'demo/#' -q 1
mosquitto_pub -h 127.0.0.1 -p 1883 -t demo/hello -m world -q 1| Area | Version 0.2.0 |
|---|---|
| Protocol | MQTT 3.1.1 over TCP or TLS |
| Delivery | QoS 0/1/2 publish/subscribe; phase-aware PUBLISH/PUBREL replay |
| Topics | + and # filters, deterministic overlap merge, retained messages |
| Sessions | Clean and persistent Sessions, Client ID takeover, bounded offline QoS 1/2 |
| Lifecycle | PING, Keep Alive, QoS 0/1/2 Wills, graceful SIGTERM/SIGINT shutdown |
| Persistence | Optional local checksummed snapshots with strict startup recovery |
| Security | Optional Argon2id passwords, allow-only ACLs, Principal-owned Sessions |
| Operations | TOML configuration, byte budgets and connection/auth/publish rate limits, $SYS/broker/# metrics, text/JSON logs |
scripts/moon-docker.sh run --target native src/cmd/broker -- \
--listen 127.0.0.1:1883 \
--max-connections 128 \
--max-packet-size 1048576 \
--max-receive-buffer-size 1048576 \
--max-sessions 1024 \
--max-inflight-per-session 16 \
--max-inflight-total 512 \
--max-pending-per-session 64 \
--max-pending-total 1024scripts/moon-docker.sh run --target native src/cmd/broker -- \
--listen 127.0.0.1:1883 \
--data-dir /workspace/databroker --config /etc/moonbit-mqtt-broker.toml --check-config
broker --config /etc/moonbit-mqtt-broker.toml --print-effective-config
broker --config /etc/moonbit-mqtt-broker.tomlscripts/moon-docker.sh run --target native src/cmd/broker -- --help
scripts/moon-docker.sh run --target native src/cmd/broker -- --versionexamples/basic_pubsub.sh
# Against a broker already running at HOST PORT:
examples/persistent_session.sh 127.0.0.1 1883
examples/restart_persistence.shdocker build --platform linux/amd64 -t moonbit-mqtt-broker-dev .
scripts/moon-docker.sh fmt --check
scripts/moon-docker.sh check --target native --deny-warn
scripts/moon-docker.sh test --target native --deny-warn
scripts/moon-docker.sh build --target native
scripts/verify-release-docker.shsudo apt-get install libargon2-1 argon2scripts/verify-distribution-docker.sh
# Also exercise the existing ten-minute stability profile:
RELEASE_SOAK=1 scripts/verify-distribution-docker.shInstall
Download zipA lightweight MQTT 3.1.1 broker implemented in MoonBit.
Dependencies