Crate mqtt_tiny

Source
Expand description

License BSD-2-Clause License MIT AppVeyor CI docs.rs crates.io Download numbers dependency status

§mqtt-tiny

Welcome to mqtt-tiny 🎉

mqtt-tiny is a tiny, no-std-compatible MQTT 3.1.1 codec implementation. It is currently limited to packet en- and decoding, and does not handle state or transport-level stuff.

§Example

use mqtt_tiny::{
    packets::{ToWriter, TryFromReader},
    Connack, Connect, Disconnect,
};
use std::{net::TcpStream, thread, time::Duration};

// Connect to a server
let mut connection = TcpStream::connect("127.0.0.1:1883").expect("failed to connect to server");
Connect::new(30, true, b"mqtttinyexamplesconnect").expect("failed to create CONNECT packet")
    .write(&mut connection).expect("failed to send CONNECT packet");

// Await CONNACK
let connack = Connack::try_read(&mut connection).expect("failed to read CONNACK packet");
assert_eq!(connack.return_code(), 0, "connection was refused");

// Sleep 3s
const PAUSE: Duration = Duration::from_secs(3);
thread::sleep(PAUSE);

// Disconnect
Disconnect::new().write(&mut connection).expect("failed to write DISCONNECT packet");

§Storage Backings

You can configure different predefined storage backings via feature flags:

  • std::vec::Vec via the std feature flag
  • heapless::Vec via the heapless feature flag
  • arrayvec::ArrayVec via the arrayvec feature flag

Please note that the different predefined backings are mutually exclusive.

Modules§

anyvec
A bridge trait to unify required vector operations over multiple implementations
packets
MQTT packet types

Type Aliases§

Connack
An MQTT CONNACK packet
Connect
An MQTT CONNECT packet
Disconnect
An MQTT DISCONNECT packet
Packet
A type-erased MQTT packet
Pingreq
An MQTT PINGREQ packet
Pingresp
An MQTT PINGRESP packet
Puback
An MQTT PUBACK packet
Pubcomp
An MQTT PUBCOMP packet
Publish
An MQTT PUBLISH packet
Pubrec
An MQTT PUBREC packet
Pubrel
An MQTT PUBREL packet
Suback
An MQTT SUBACK packet
Subscribe
An MQTT SUBSCRIBE packet
Unsuback
An MQTT UNSUBACK packet
Unsubscribe
An MQTT UNSUBSCRIBE packet