0.6.3 • Published 4 months ago

u8-mqtt v0.6.3

Weekly downloads
11
License
BSD-2-Clause
Repository
github
Last release
4 months ago

u8-mqtt npm published version

A JavaScript MQTT client using async/await support QOS-0 and QOS-1. for use in modern ES6 environments: the Browser, NodeJS, and Deno.

Use ExpressJS-like router to handle publish messages for matching topics.

  • Static (/foo, /foo/bar)
  • Parameter (/:title, /books/:title, /books/:genre/:title)
  • Parameter w/ Suffix (/movies/:title.mp4, /movies/:title.(mp4|mov))
  • Optional Parameters (/:title?, /books/:title?, /books/:genre/:title?)
  • Wildcards (*, /books/*, /books/:genre/*)

    (Thanks to @lukeed and the excellent regexparam library!)

Docs

Targeting MQTT-3.1.1 (v4) and MQTT-5.0.0 (v5) compatibility.

Use

import mqtt_client from 'https://cdn.jsdelivr.net/npm/u8-mqtt/esm/web/index.js'
// or import mqtt_client from 'u8-mqtt'

let my_mqtt = mqtt_client()
  .with_websock('wss://test.mosquitto.org:8081')
  // or .with_tcp('tcp://test.mosquitto.org:1883')
  .with_autoreconnect()

await my_mqtt.connect()

my_mqtt.subscribe_topic(
  'u8-mqtt/demo-simple/:topic',
  (pkt, params, ctx) => {
    console.log('topic packet', params, pkt, pkt.json())
  })

await my_mqtt.json_send(
  'u8-mqtt/demo-simple/live',
  { note: 'from README example',
    live: new Date().toISOString() })

Module size

Built for small bundle footprint with ES Modules (ESM) using embedded u8-mqtt-packet and regexparam libraries. (See BundlePhobia page)

modulebrotliminified
u8-mqtt6587 B19962 B
u8-mqtt/esm/v5.min.js6504 B19789 B
u8-mqtt/esm/v4.min.js5420 B15379 B

(automated sizing report)

MQTT Client sizes

minifeid(x)ProjectMeasurement
187.0KB12xMQTT.jscurl -sL https://cdn.jsdelivr.net/npm/mqtt@4.0.1/dist/mqtt.min.js \| wc -c
32.3KB2xpahocurl -sL https://cdn.jsdelivr.net/npm/paho-mqtt@1.1.0/paho-mqtt.min.js \| wc -c
19.8KB1.3xu8-mqtt v5cat ./u8-mqtt/esm/web/v5.min.js \| wc -c
15.4KB1xu8-mqtt v4cat ./u8-mqtt/esm/web/v4.min.js \| wc -c

Prior Art

The u8-mqtt project was inspired by mqtt and mqtt-packet written for NodeJS. The codecs of those project are written with a NodeJS ecosystem in mind: Buffer, EventEmitter, Streams.

License

BSD-2-Clause

0.6.3

4 months ago

0.6.2

4 months ago

0.6.1

4 months ago

0.6.0

4 months ago

0.5.3

10 months ago

0.5.0

10 months ago

0.4.1

11 months ago

0.4.0

11 months ago

0.5.2

10 months ago

0.5.1

10 months ago

0.3.2-0

1 year ago

0.3.0

1 year ago

0.3.1

1 year ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.3

2 years ago

0.1.0

2 years ago

0.0.28

2 years ago

0.0.27

2 years ago

0.0.26

3 years ago

0.0.23

3 years ago

0.0.24

3 years ago

0.0.22

3 years ago

0.0.20

3 years ago

0.0.21

3 years ago

0.0.19

4 years ago

0.0.18

4 years ago

0.0.17

4 years ago

0.0.16

4 years ago

0.0.15

4 years ago

0.0.13

4 years ago

0.0.14

4 years ago

0.0.10

4 years ago

0.0.12

4 years ago

0.0.9

4 years ago