package mqtt

  1. Overview
  2. Docs
OCaml MQTT client

Install

Dune Dependency

Authors

Maintainers

Sources

0.2.2.tar.gz
md5=1af0b40f0d73e2ed69b515a7c43d2e5f
sha512=f2640262b929bece15b51abd3bfcd708eb495fb7371c23e30c2a69f12a1633385d8de90153ee11aaeacb71b3f782f59b3a2f1ce9d783b20c959d9ce6f2f9d96a

Description

Published: 06 Apr 2024

README

OCaml MQTT Client

This library implements the client MQTT v3 protocol.

Quickstart

In your dune project add the following dependencies to your dune file:

(executable
  (name My_app)
  (public_name my_app)
  (libraries mqtt.client lwt)
  (preprocess (pps lwt_ppx)))

Examples

Here is a basic example of a subscriber:

module C = Mqtt_client

let host = "127.0.0.1"
let port = 1883

let sub_example () =
  let on_message ~topic payload = Lwt_io.printlf "%s: %s" topic payload in
  let%lwt () = Lwt_io.printl "Starting subscriber..." in
  let%lwt client = C.connect ~on_message ~id:"client-1" ~port [ host ] in
  C.subscribe [ ("topic-1", C.Atmost_once) ] client

let pub_example () =
  let%lwt () = Lwt_io.printl "Starting publisher..." in
  let%lwt client = C.connect ~id:"client-1" ~port [ host ] in
  let rec loop () =
    let%lwt () = Lwt_io.printl "Publishing..." in
    let%lwt line = Lwt_io.read_line Lwt_io.stdin in
    let%lwt () = C.publish ~qos:C.Atleast_once ~topic:"topic-1" line client in
    let%lwt () = Lwt_io.printl "Published." in
    loop ()
  in
  loop ()

let () = Lwt_main.run (sub_example ())

Dependencies (9)

  1. tls-lwt >= "0.17.3"
  2. tls >= "0.17.3"
  3. lwt_ppx >= "2.1.0"
  4. lwt >= "5.7.0"
  5. fmt >= "0.8.7"
  6. logs >= "0.7.0"
  7. ocplib-endian >= "0.6"
  8. dune >= "3.13"
  9. ocaml >= "4.08.0"

Dev Dependencies (7)

  1. odoc with-doc & >= "2.4.1"
  2. ocamlformat with-dev-setup & >= "0.26.1"
  3. ocaml-lsp-server with-dev-setup
  4. cohttp-lwt-unix with-test & >= "5.0.0"
  5. cohttp with-test & >= "5.0.0"
  6. alcotest-lwt with-test & >= "1.5.0"
  7. alcotest with-test & >= "1.5.0"

Used by

None

Conflicts

None