Congrats! On Mon, May 26, 2025, 06:16 Mikael Djurfeldt <mik...@djurfeldt.com> wrote:
> Guile MQTT provides bindings for the libmosquitto MQTT client library. The > bindings are written in [GOOPS](https://www.gnu.org/software/guile > /manual/html_node/GOOPS.html > <https://www.gnu.org/software/guile/manual/html_node/GOOPS.html>) and > rely on lower-level bindings created by > NYACC directly and automatically from mosquitto.h. > > Changes compared to v0.2.1: > > * Major version bumped to 1 to indicate reasonable stability. > > * Bugfix: Support publishing of UTF-8 strings. (Thanks to Evgeny Pisemsky.) > > * Get ready for the Guile 4.0 release. > > The bindings align with GOOPS style, which means short method names. (The > specialization is done through the arguments.) > > The user can extend the client class by inheritance. > > Guile MQTT is free software and is released under the LGPL v3 license; the > full source distribution is available through > > * a tarball: > > https://github.com/mdjurfeldt/guile-mqtt/releases/download/v1.0.0/guile > -mqtt-1.0.0.tar.gz > <https://github.com/mdjurfeldt/guile-mqtt/releases/download/v1.0.0/guile-mqtt-1.0.0.tar.gz> > < > https://github.com/mdjurfeldt/guile-mqtt/releases/download/v0.2.0/guile-mqtt-0.2.0.tar.gz > > > > * the git repository: > https://github.com/mdjurfeldt/guile-mqtt > > The following example, as well as the Guile libmosquitto bindings > themselves, are inspired by the [Chicken Scheme mosquitto bindings]( > http://wiki.call-cc.org/eggref/5/mosquitto) by Dmitrii Kosenkov. > > ``` > (use-modules (mosquitto client)) > > (let ((client (make-client #:on-connect > (lambda (client err) > (if (not (eq? err MOSQ_ERR_SUCCESS)) > (abort err) > (display "Yay, we are connected!")))))) > (set! (disconnect-callback client) > (lambda (client err) > (if (not (eq? err MOSQ_ERR_SUCCESS)) > (display "Unexpected disconnect...")))) > > (set! (message-callback client) > (lambda (cl msg) > (display (string->append "Topic: " (topic msg) > "Payload:" payload msg)) > (publish client "topic2" "message received, thanks!"))) > (connect client "localhost" #:username "mqtt-admin" #:password "mypass") > (subscribe client "topic1") > (loop-forever client)) > ``` > > See further examples under the directory [examples]( > https://github.com/mdjurfeldt/guile-mqqt/tree/main/examples). >