Skip to main content

The idiomatic asyncio MQTT client 🙌

PyPI downloads PyPI version Supported Python versions

Documentation: https://aiomqtt.bo3hm.com


Write code like this:

Publish

async with Client("test.mosquitto.org") as client:
    await client.publish("temperature/outside", payload=28.4)

Subscribe

async with Client("test.mosquitto.org") as client:
    await client.subscribe("temperature/#")
    async for message in client.messages:
        print(message.payload)

Key features

  • No more callbacks! 👍
  • No more return codes (welcome to the MqttError)
  • Graceful disconnection (forget about on_unsubscribe, on_disconnect, etc.)
  • Supports MQTT versions 5.0, 3.1.1 and 3.1
  • Fully type-hinted
  • Did we mention no more callbacks?

Installation

pip install aiomqtt

The only dependency is paho-mqtt.

If you can't wait for the latest version, install directly from GitHub with:

pip install git+https://github.com/empicano/aiomqtt

Note for Windows users

Since Python 3.8, the default asyncio event loop is the ProactorEventLoop. Said loop doesn't support the add_reader method that is required by aiomqtt. Please switch to an event loop that supports the add_reader method such as the built-in SelectorEventLoop:

# Change to the "Selector" event loop if platform is Windows
if sys.platform.lower() == "win32" or os.name.lower() == "nt":
    from asyncio import set_event_loop_policy, WindowsSelectorEventLoopPolicy
    set_event_loop_policy(WindowsSelectorEventLoopPolicy())
# Run your async application as usual
asyncio.run(main())

License

This project is licensed under the BSD 3-clause License.

Note that the underlying paho-mqtt library is dual-licensed. One of the licenses is the Eclipse Distribution License v1.0, which is almost identical to the BSD 3-clause License. The only differences are:

  • One use of "COPYRIGHT OWNER" (EDL) instead of "COPYRIGHT HOLDER" (BSD)
  • One use of "Eclipse Foundation, Inc." (EDL) instead of "copyright holder" (BSD)

Contributing

We're happy about contributions to aiomqtt! 🎉 Get started by reading CONTRIBUTING.md.

Versioning

This project adheres to Semantic Versioning. Breaking changes will only occur in major X.0.0 releases.

Changelog

See CHANGELOG.md, which follows the principles of Keep a Changelog.

Metadata

Release files for aiomqtt 2.5.1

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

Source distribution (sdist)

Source distribution for aiomqtt 2.5.1
File Size Uploaded
aiomqtt-2.5.1.tar.gz 86.6 kB Details

Built distribution (wheel)

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

Total release size: 102.7 kB

Release files / aiomqtt-2.5.1.tar.gz

Download URL aiomqtt-2.5.1.tar.gz
Size 86.6 kB
Tags Source
SHA-256 checksum
How to use checksums
25a0a47d157e8f158d2da1110ea4786c0615518751e94f7b04976c977a8ff20d
BLAKE2b-256 checksum
How to use checksums
7044cfc58272783a11729462dc6df5adbfeabd084f840f609054ac772ae98c19
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 5, 2026.

Transparency log

Release files / aiomqtt-2.5.1-py3-none-any.whl

Download URL aiomqtt-2.5.1-py3-none-any.whl
Size 16.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fd58c3593160e4d475d90ce911cdfc4239cd64de96b0ba22edf6c86bd7afa278
BLAKE2b-256 checksum
How to use checksums
019e5089fa596220bf0dc73deeb23db27904e4b3504986caf08571f6f5cb84a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 5, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.5.1 This release

2 release files

2.5.0

2 release files

2.4.0

2 release files

2.3.2

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.17.0

2 release files

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1.0

1 release file

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