Skip to content

thehouseisonfire/rumqtt

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,350 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rumqtt Logo

What is rumqtt?

rumqtt is an open source set of Rust libraries for MQTT clients and packet handling, built to stay simple, robust, and performant.

Package Description Version
rumqttc-next Facade crate that re-exports the MQTT 5 client API crates.io page
rumqttc-v5-next Explicit MQTT 5 client crate crates.io page
rumqttc-v4-next Explicit MQTT 3.1.1 client crate crates.io page
rumqttc-core-next Shared transport and connection plumbing for the client crates crates.io page
mqttbytes-core-next Shared MQTT packet primitives for the client crates crates.io page

Optional file-backed implementations of the client-owned SessionStore APIs are developed in the independent session-store-file workspace. That workspace contains a protocol-neutral filesystem core and one feature-gated MQTT 3.1.1 and MQTT 5 adapter package; it is not part of the client dependency graph.

rumqttc-next is a maintained fork of rumqtt with a variety of extra features.

The client crates are published with *-next package names on crates.io, but their Rust library target is still named rumqttc. After adding a dependency, application code can use familiar imports such as use rumqttc::MqttOptions;.

Installation and Usage

Choose a client package

Use case Package
Default MQTT 5 client rumqttc-next
Explicit MQTT 5 package name rumqttc-v5-next
MQTT 3.1.1 client rumqttc-v4-next

Run one of these, depending on the protocol package you want:

# Default MQTT 5 client
cargo add rumqttc-next@0.34.0-alpha

# Explicit MQTT 5 package
cargo add rumqttc-v5-next@0.34.0-alpha

# MQTT 3.1.1 package
cargo add rumqttc-v4-next@0.34.0-alpha

For more details, see rumqttc-next/README.md, rumqttc-v5/README.md, and rumqttc-v4/README.md.

Existing upstream rumqttc users should start with the migration guide for package names, API changes, and porting recipes.

Production deployment examples for TLS, WebSockets, proxies, persistent sessions, reconnect handling, bounded channels, manual ACKs, and broker-specific setup notes are in the recipe guide.

On Linux, both clients support opt-in Multipath TCP through NetworkOptions::set_mptcp; see the MPTCP recipe.

Features

rumqttc-next / rumqttc-v5-next

  • MQTT 5
  • WebSocket transport
  • TLS via rustls or native-tls
  • MQTT 5 properties, reason codes, topic aliases, and enhanced auth hooks

rumqttc-v4-next

  • MQTT 3.1.1
  • WebSocket transport
  • TLS via rustls or native-tls
  • Strict MQTT 3.1.1 codec validation

Spec Compliance Docs

License

This project is released under The Apache License, Version 2.0 (LICENSE or http://www.apache.org/licenses/LICENSE-2.0)

About

The MQTT ecosystem in rust

Resources

License

Contributing

Stars

15 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors

Languages

  • Rust 95.0%
  • Python 3.8%
  • Shell 1.2%