• Stars
    star
    142
  • Rank 258,495 (Top 6 %)
  • Language
    Rust
  • License
    MIT License
  • Created over 4 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Minimal no_std MQTT v5.0 client implementation

QUARTIQ Matrix Chat Continuous Integration

Minimq

Minimq provides a minimal MQTTv5 client and message parsing for the MQTT version 5 protocol. It leverages the embedded-nal to operate on top of any TCP stack implementation and is actively used with both smoltcp and and the W5500 hardware network stack.

Minimq provides a simple, no_std interface to connect to an MQTT broker to publish messages and subscribe to topics.

Features

Minimq supports all of the fundamental operations of MQTT, such as message subscription and publication. Below is a detailed list of features, indicating what aspects are supported:

  • Publication at all quality-of-service levels (at-most-once, at-least-once, and exactly-once)
  • Retained messages
  • Connection will messages
  • Session state reconnection and republication
  • Topic subscriptions at all quality-of-service levels
  • Subscription option flags
  • Zero-copy message deserialization
  • Serde-compatible MQTT message serialization and deserialization

If there are features that you would like to have that are not yet supported, we are always accepting pull requests to extend Minimq's capabilities.

Minimq also provides convenient APIs to implement request-response interfaces over MQTT leveraging the ResponseTopic and CorrelationData properties for in-bound and out-bound messages.

Smoltcp Support

If using smoltcp, check out the smoltcp-nal to quickly create an interface that can be used by Minimq.

Examples

An example usage of Minimq that can be run on a desktop PC can be found in tests/integration_test.rs

More Repositories

1

rayopt

Python optics and lens design, raytracing
Python
250
star
2

stabilizer

Firmware and software for the Sinara Stabilizer module with high speed, low latency ADC/DAC data processing and powerful DSP algorithms in between
Rust
104
star
3

bscan_spi_bitstreams

FPGA gateware and pre-build bitstreams that expose SPI over JTAG. The protocol is implemented (among others) by openocd.
Python
51
star
4

rayopt-notebooks

RayOpt Example IPython Notebooks
Jupyter Notebook
34
star
5

idsp

Rust DSP algorithms. Often integer math. no-std.
Rust
34
star
6

redpid

migen + misoc + redpitaya = digital servo
Verilog
34
star
7

miniconf

Rust serialize/deserialize/access reflection for trees (no_std, no alloc)
Rust
25
star
8

smoltcp-nal

An embedded-nal implementation for smoltcp
Rust
18
star
9

booster

Firmware for the Sinara Booster RF amplifier
Rust
13
star
10

phaser

Phaser AWG DSP design
Jupyter Notebook
10
star
11

thermostat-eem

Embedded software for the Thermostat-EEM multichannel temperature controller.
Rust
7
star
12

xilinx-bitstream

Python
6
star
13

picam

ARTIQ support for Princeton Instrumentsโ€™ PICam Library
Python
5
star
14

newfocus8742

Newport New Focus 8742 four channel open loop piezo controller
Python
5
star
15

grabber

Grabber gateware and prototyping: Camera Link Interface, Frame Grabber, ROI engines, RTIO Interface
Python
4
star
16

std-embedded-time

Rust
4
star
17

fastino

Gateware and software for Fastino (32 channel 2.5 MS/s 16 bit DAC for the Sinara ecosystem)
Python
4
star
18

minireq

Minimal MQTT-based request/response library
Rust
3
star
19

lasersdk-artiq

ARTIQ controller for TOPTICA Laser SDK
Python
3
star
20

urukul

CPLD gateware for the Sinara Urukul module
Python
2
star
21

kasli-i2c

Utilities to access the Sinara I2C tree via Kasli, including Sinara EEPROM deployment, firmware flashing for Fastino, Banker
Python
2
star
22

thermostat

Sinara Thermostat firmware. Currently a potentially outdated mirror of http://git.m-labs.hk/M-Labs/thermostat
Rust
2
star
23

queenmod

MTS/WMS prototype/testbed with STM32 and Rust
Rust
2
star
24

andorpy

Andor EMCCD driver and camera app (ATMCD32)
Python
2
star
25

miqro-sim

MIQRO pulse generator simulator
Python
2
star
26

stabilizer-stream

Host-side stream utilities for interacting with Stabilizer's livestream
Rust
2
star
27

quartiq.github.io

HTML
2
star
28

ai9

CLI tool using Bluetooth and Python to control the Signalfire AI-9 Fiber Fusion Splicer
Python
1
star
29

crosstrait

Cast from `dyn Any` to other trait objects, with no_std, no alloc support
Rust
1
star
30

ai-artiq.github.io

HTML
1
star
31

artiq-docker

ARTIQ docker recipes: https://hub.docker.com/r/quartiq/artiq/
Nix
1
star
32

highfinesse-net

Python
1
star
33

artiq-setup

Python
1
star
34

pounder-bringup

Provides a minimal application to test Pounder hardware support on Stabilizer: **deprecated legacy code, use https://github.com/quartiq/stabilizer**
Rust
1
star
35

awrite

awrite!(): the async write!()/format!() scratch buffer
Rust
1
star
36

etf-trace

Capture STM32H7 trace data using the internal embedded trace FIFO
Rust
1
star
37

wlm

Python wrapper and network server/clients for Wavemeter API
Python
1
star