Skip to main content

PyQTTier

A Python MQTT client library providing a clean, type-safe wrapper around paho-mqtt with support for MQTT 5.0 features.

Features

  • MQTT 5.0 Support - Full support for MQTT 5.0 protocol features including message properties, correlation data, and response topics
  • Type Safety - Strongly typed with mypy-checked type hints for reliability
  • Multiple Transports - Supports TCP, WebSocket, and Unix socket connections
  • Mock Implementation - Built-in MockConnection for easy testing without a broker
  • Python 3.7+ - Compatible with Python 3.7 through 3.12 Python 3.7 Tests

Installation

pip install pyqttier

Quick Start

Basic Usage

from pyqttier.connection import Mqtt5Connection
from pyqttier.transport import MqttTransport, MqttTransportType
from pyqttier.message import Message

# Connect to broker
transport = MqttTransport(
    transport_type=MqttTransportType.TCP,
    host="localhost",
    port=1883,
)
conn = Mqtt5Connection(transport=transport, client_id="my-client")

# Subscribe to a topic
def on_message(msg: Message):
    print(f"Received: {msg.payload.decode()}")

conn.subscribe("sensors/temperature", callback=on_message)

# Publish a message
msg = Message(topic="sensors/temperature", payload=b"23.5", qos=1)
conn.publish(msg)

Testing with MockConnection

from pyqttier.mock import MockConnection
from pyqttier.message import Message

# Create mock connection for testing
conn = MockConnection()

# Publish and verify
result = conn.publish(Message(topic="test", payload=b"data", qos=1))
assert result.done()
assert len(conn.published_messages) == 1
assert conn.published_messages[0].topic == "test"

Examples

See the examples/ directory for more detailed usage examples:

  • usage_example.py - Real broker connections, wildcards, request-response patterns
  • mock_example.py - Testing with MockConnection

Development

# Install project
uv pip install -e .

# Type checking
uv run mypy --check-untyped-defs ./src/

# Unit tests
uv run pytest

License

MIT License.

See LICENSE file for details.

Metadata

Release files for pyqttier 0.2.11.post0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyqttier 0.2.11.post0
File Size Uploaded
pyqttier-0.2.11.post0.tar.gz 70.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyqttier 0.2.11.post0
File Interpreter ABI Platform
pyqttier-0.2.11.post0-py3-none-any.whl Python 3 none any Details

Total release size: 82.0 kB

Release files / pyqttier-0.2.11.post0.tar.gz

Download URL pyqttier-0.2.11.post0.tar.gz
Size 70.6 kB
Tags Source
SHA-256 checksum
How to use checksums
c7fe77af31b8bb943a3f817548c0014f15848f316bc03e862f9081e531f390ef
BLAKE2b-256 checksum
How to use checksums
b6a16096e52ec79800866c20edb13d0ee9e828a5341d03e23d669c70d5bba463
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / pyqttier-0.2.11.post0-py3-none-any.whl

Download URL pyqttier-0.2.11.post0-py3-none-any.whl
Size 11.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f3350dc9d4ee67f6853f4253bdb2715c28bd3b98e1daa4759205ab26f67f39bb
BLAKE2b-256 checksum
How to use checksums
9c5e5a090f5adecd2c5a96470c63841410ec450c0e1c4c70827642c0deb0890c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.3.0

2 release files

This release

0.2.11.post0 This release

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page