"stomp.py" is a Python client library for accessing messaging servers (such as ActiveMQ, Artemis or RabbitMQ) using the STOMP protocol (STOMP v1.0, STOMP v1.1 and STOMP v1.2). It can also be run as a standalone, command-line client for testing. NOTE: Stomp.py has officially ended support for Python2.x. See python3statement.org for more information.
If you find this project useful, why not buy me a coffee.
You can connect to a message broker running on the local machine, and send a message using the following example.
import stomp
conn = stomp.Connection()
conn.connect('admin', 'password', wait=True)
conn.send(body=' '.join(sys.argv[1:]), destination='/queue/test')
conn.disconnect()
- Main documentation
- API documentation (see stomp.github.io for details on the STOMP protocol itself)
- A basic example of using stomp.py with a message listener can be found in the quick start section of the main documentation
- Description of the command-line interface
- Travis for continuous integration builds
- Current test coverage report
- PyPi stomp.py page
The current version of stomp.py supports:
- Python 3.x (Python2 support ended as of Jan 2020)
- STOMP version 1.0, 1.1 and 1.2
There is also legacy 3.1.7 version using the old 3-series code (see 3.1.7 on PyPi and 3.1.7 on GitHub). This is no longer supported, but (at least as of 2018) there were still a couple of reports of this version still being used in the wild.
Note: stomp.py now follows semantic versioning:
- MAJOR version for incompatible API changes,
- MINOR version for functionality added in a backwards compatible manner, and
- PATCH version for backwards compatible bug fixes.
stomp.py has been perfunctorily tested on:
- Pivotal RabbitMQ (rabbitmq_test.py)
- Apache ActiveMQ (activemq_test.py)
- Apache ActiveMQ Artemis (artemis_test.py)
- stompserver (stompserver_test.py)
For testing locally, you'll need to install docker. Once installed:
- Create the docker image:
- make docker-image
- Run the container:
- make run-docker
- Run stomp.py unit tests:
- make test
- Cleanup the container afterwards if you don't need it any more:
- make remove-docker