5 releases

Uses old Rust 2015

0.1.4 Jun 13, 2016
0.1.3 Jun 2, 2016
0.1.2 Apr 18, 2016
0.1.1 Apr 17, 2016
0.1.0 Mar 21, 2016

#9 in #subscribe

Download history 37/week @ 2024-07-19 38/week @ 2024-07-26 35/week @ 2024-08-02 42/week @ 2024-08-09 27/week @ 2024-08-16 23/week @ 2024-08-23 24/week @ 2024-08-30 25/week @ 2024-09-06 22/week @ 2024-09-13 33/week @ 2024-09-20 28/week @ 2024-09-27 16/week @ 2024-10-04 14/week @ 2024-10-11 28/week @ 2024-10-18 36/week @ 2024-10-25 23/week @ 2024-11-01

101 downloads per month
Used in 3 crates (2 directly)

MIT license

50KB
1.5K SLoC

RustMQ

Build Status

This repository is the bundle of crates devoted to the MQTT protocol.

Crates

  • mqtt3 - MQTT protocol reader/writer Crates.io
  • netopt - TCP/SSL connection Crates.io
  • mqttc - Rust MQTT client Crates.io

Binaries

  • mqttc - Console MQTT client

Client

The client has the following functionality:

  • QoS 0, QoS 1, QoS 2 publish/subscribe
  • Last Will message
  • Auto-Ping
  • Auto-Reconnect
  • SSL supported (include TLS v1.1, TLS v1.2)
  • Modular: mqtt3, netopt
  • Logging

Connect

let netopt = NetworkOptions::new();
let mut opts = ClientOptions::new();
opts.set_reconnect(ReconnectMethod::ReconnectAfter(Duration::from_secs(1)));
let mut client = opts.connect("127.0.0.1:1883", netopt).expect("Can't connect to server");

Publish

client.publish("a/b/c", "hello", PubOpt.at_least_once()).unwrap();
while (client.await().unwrap().is_some()) {};

Subscribe

client.subscribe("a/b/c").unwrap();
loop {
    match client.await().unwrap() {
        Some(message) => {
            println!("{:?}", message);
        },
        None => {}
    }
}

Command line interface

mqtt-cli

MQTT Client installation:

git clone https://github.com/inre/rust-mq.git
cd rust-mq
make && make install

Subscribe to all topics:

mqttc sub

Or try,

mqttc sub -a test.mosquitto.org
mqttc sub -a iot.eclipse.org
mqttc sub -a test.mosca.io
mqttc sub -a broker.hivemq.com

Publish to the topic:

mqttc pub -t a/b/c -m "hello"

Server

Maybe in future

Dependencies

~165KB