All Projects → ericvoid → StriderMqtt

ericvoid / StriderMqtt

Licence: MIT license
A very thin MQTT client

Programming Languages

C#
18002 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to StriderMqtt

Luamqtt
luamqtt - Pure-lua MQTT v3.1.1 and v5.0 client
Stars: ✭ 58 (+176.19%)
Mutual labels:  protocol, mqtt-client
MqttAndroidExample
An example Android app using MQTT protocol
Stars: ✭ 19 (-9.52%)
Mutual labels:  protocol, mqtt-client
Hazel Networking
Hazel Networking is a low level networking library for C# providing connection orientated, message based communication via TCP, UDP and RUDP.
Stars: ✭ 194 (+823.81%)
Mutual labels:  protocol
Ttrpc
GRPC for low-memory environments
Stars: ✭ 236 (+1023.81%)
Mutual labels:  protocol
Pypacker
📦 The fastest and simplest packet manipulation lib for Python
Stars: ✭ 216 (+928.57%)
Mutual labels:  protocol
Xiaomirobotvacuumprotocol
Attempt to describe the Xiaomi Robot Vacuum Protocol
Stars: ✭ 200 (+852.38%)
Mutual labels:  protocol
Protocol
Loopring Protocol Smart Contract on Ethereum
Stars: ✭ 220 (+947.62%)
Mutual labels:  protocol
Xiaomi Kettle
Xiaomi Kettle BLE protocol reverse-engineered
Stars: ✭ 187 (+790.48%)
Mutual labels:  protocol
Opcua Asyncio
OPC UA library for python > 3.6 asyncio
Stars: ✭ 251 (+1095.24%)
Mutual labels:  protocol
Derosuite
DERO: Secure, Anonymous Blockchain with Smart Contracts. Subscribe to Dero announcements by sending mail to [email protected] with subject: subscribe announcements
Stars: ✭ 216 (+928.57%)
Mutual labels:  protocol
Keepalived
Keepalived
Stars: ✭ 2,877 (+13600%)
Mutual labels:  protocol
Framework
0xcert Framework - JavaScript framework for building decentralized applications - build something unique
Stars: ✭ 213 (+914.29%)
Mutual labels:  protocol
Lego Ble Wireless Protocol Docs
This repository contains information about LEGO Hubs (name, battery level, etc.) and to interact with any sensors and motors connected to it.
Stars: ✭ 205 (+876.19%)
Mutual labels:  protocol
Golden Gate
Framework to connect wearables and other IoT devices to mobile phones, tablets and PCs with an IP-based protocol stack over Bluetooth Low Energy
Stars: ✭ 223 (+961.9%)
Mutual labels:  protocol
Binaryserializer
A declarative serialization framework for controlling formatting of data at the byte and bit level using field bindings, converters, and code.
Stars: ✭ 197 (+838.1%)
Mutual labels:  protocol
Merkletreejs
🌱 Construct Merkle Trees and verify proofs in JavaScript.
Stars: ✭ 238 (+1033.33%)
Mutual labels:  protocol
Erpc
An efficient, extensible and easy-to-use RPC framework.
Stars: ✭ 2,274 (+10728.57%)
Mutual labels:  protocol
Protocol
Enzyme Protocol Implementation
Stars: ✭ 211 (+904.76%)
Mutual labels:  protocol
O3
Open-source implementation of the Threema protocol in Go.
Stars: ✭ 219 (+942.86%)
Mutual labels:  protocol
seamless
Seamless is a framework to set up reproducible computations (and visualizations) that respond to changes in cells. Cells contain the input data as well as the source code of the computations, and all cells can be edited interactively.
Stars: ✭ 19 (-9.52%)
Mutual labels:  protocol

Strider MQTT

A very thin MQTT client written in C#. This library isn't a full fledged MQTT client, but made with simplicity (the first MQTT principle) in mind. It basically implements a MqttConnection that encapsulates lower level aspects of the protocol (like sockets, packet reading and writing, and so on).

The library was written using MonoDevelop, but it shouldn't require too many changes to work with VisualStudio.

Features

The current version has the following features:

  • MQTT 3.1 and 3.1.1 versions;
  • QoS level 0, 1 and 2;
  • TCP and TLS connections;

The following also should be acknowledged.

This library does not use concurrency or parallelism internally, as it is intended to use minimum resources.

This lib provides classes for persistency. By default, it uses memory only. So if you intend to use QoS 1 or 2 in an unstable environment, prone to hardware, os or process failure, you should persist in disk. A Sqlite implementation is provided, but you can implement IMqttPersistence to suit your needs.

This lib does not guarantee ordering if more than one message is inflight per channel (incoming / outgoing).

Documentation and Help

To publish a QoS 0 "hello world" message, all you need to do is the following:

    var connArgs = new MqttConnectionArgs()
    {
        ClientId = "my-strider-client",
        Hostname = "some-broker.com",
        Port = 1883
    };

    using (var conn = new MqttConnection(connArgs))
    {
        conn.Connect();

        conn.Publish("my/test/topic",
            Encoding.UTF8.GetBytes("Hello world!"),
            MqttQos.AtMostOnce);

        conn.Disconnect();
    }

Check the wiki pages for more details.

References

The MQTT Protocol official website.

Overall architecture inspired by Mosquitto's Python client.

Packets reading and writing inspired by MqttDotNet.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].