Skip to main content

A lightweight Python MQTT client implemented as a thin wrapper around libmosquitto

Project description

PyMosquitto

A lightweight Python MQTT client implemented as a thin wrapper around libmosquitto.

Dependencies

  • python3.8+
  • libmosquitto1

Installation

  • pip install pymosquitto

TODO

  • implement the remaining bindings

Usage

from pymosquitto.client import MQTTClient


def on_message(client, userdata, msg):
    print(msg)


client = MQTTClient()
client.on_connect = lambda *_: client.subscribe("#", 1)
client.on_message = on_message
client.connect_async("localhost", 1883)
client.loop_forever()

Async client example:

import asyncio

from pymosquitto.aio import AsyncMQTTClient


async def main():
    async with AsyncMQTTClient() as client:
        await client.connect("localhost", 1883)
        await client.subscribe("#", 1)
        async for msg in client.recv_messages():
            print(msg)


asyncio.run(main())

Check out more examples in tests/test_client.py.

Benchmarks

Receiving 1 million messages with QoS 0.

*The memory plots exclude the Python interpreter overhead (~10.2 MB).

benchmark-results

Losers excluded:

benchmark-results-fast

benchmark.csv

Module;Time;RSS
pymosq;0:04.33;18128
pymosq_async;0:10.34;24868
paho;0:09.15;23392
gmqtt;0:03.90;24724
mqttools;0:06.55;27860
aiomqtt;0:55.72;576700
amqtt;1:07.35;725708

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pymosquitto-0.2.0.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pymosquitto-0.2.0-py3-none-any.whl (10.5 kB view details)

Uploaded Python 3

File details

Details for the file pymosquitto-0.2.0.tar.gz.

File metadata

  • Download URL: pymosquitto-0.2.0.tar.gz
  • Upload date:
  • Size: 11.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for pymosquitto-0.2.0.tar.gz
Algorithm Hash digest
SHA256 f838188e1009883125cde7a695fdc8e3a43d91200def59a67db8a62f0d07adf6
MD5 c66e09e5a6f20a92ff6490f7016b57dc
BLAKE2b-256 2fc1f97432a6ea8d6b11e8e1e6ec1fcc375e6304ed08bb1d52d591e0783409df

See more details on using hashes here.

File details

Details for the file pymosquitto-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: pymosquitto-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for pymosquitto-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7b896579c12fd2a4b1dee4723b3b47350e169dd429b22bbd49394318e78f1e77
MD5 5e3fe45baa4e901855d7ed66646a06ad
BLAKE2b-256 76c1681c77d3dbbe3016755b2cfc894887bea05e4f3d9b36e9181e030cef76ff

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page