{"library":"stomp-py","title":"stomp-py","type":"library","description":"stomp.py is a Python client library for accessing messaging servers such as ActiveMQ, ActiveMQ Artemis, or RabbitMQ using the STOMP protocol (versions 1.0, 1.1, and 1.2). It provides both programmatic access and a command-line client for testing. The library, currently at version 8.2.0, adheres to semantic versioning and exclusively supports Python 3.x, having ended Python 2.x support in January 2020.","language":"python","status":"active","last_verified":"Fri May 22","install":{"commands":["pip install stomp-py"],"cli":{"name":"stomp","version":"9.0.0"}},"imports":["import stomp\nconn = stomp.Connection()","import stomp\nclass MyListener(stomp.ConnectionListener): ..."],"auth":{"required":false,"env_vars":[]},"links":{"homepage":null,"github":null,"docs":"https://jasonrbriggs.codeberg.page/stomp.py.pages/","changelog":null,"pypi":"https://pypi.org/project/stomp-py/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null},"quickstart":{"code":"import os\nimport time\nimport stomp\n\nclass MyListener(stomp.ConnectionListener):\n    def on_error(self, headers, body):\n        print(f'ERROR: {body}')\n\n    def on_message(self, headers, body):\n        print(f'MESSAGE: {body}')\n\nhost = os.environ.get('STOMP_HOST', 'localhost')\nport = int(os.environ.get('STOMP_PORT', '61613'))\nusername = os.environ.get('STOMP_USERNAME', 'guest')\npassword = os.environ.get('STOMP_PASSWORD', 'guest')\ndestination = os.environ.get('STOMP_DESTINATION', '/queue/test')\n\nhost_and_ports = [(host, port)]\n\ntry:\n    conn = stomp.Connection(host_and_ports)\n    conn.set_listener(MyListener())\n    conn.connect(username, password, wait=True, headers={'accept-version': '1.2', 'heart-beat': '10000,10000'})\n    print(f\"Connected to {host}:{port}\")\n\n    conn.subscribe(destination=destination, id=1, ack='auto')\n    print(f\"Subscribed to {destination}\")\n\n    print(f\"Sending message to {destination}\")\n    conn.send(body='Hello, STOMP!', destination=destination)\n\n    time.sleep(2) # Give time for message to be received\n\n    conn.disconnect()\n    print(\"Disconnected.\")\nexcept stomp.exception.ConnectFailedException as e:\n    print(f\"Failed to connect: {e}\")\nexcept Exception as e:\n    print(f\"An error occurred: {e}\")\n","lang":"python","description":"This quickstart demonstrates how to establish a connection to a STOMP broker, register a listener to handle incoming messages, subscribe to a destination, send a message, and then disconnect. It uses environment variables for host, port, username, password, and destination, falling back to common defaults. It also explicitly sets STOMP protocol version 1.2 and heartbeats during connection.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-22","installed_version":"8.2.0","pypi_latest":"9.0.0","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":1.8,"avg_import_s":0.14,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"stomp-py","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.13,"mem_mb":4.4,"disk_size":"18.9M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"stomp-py","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.09,"mem_mb":4.4,"disk_size":"19M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"stomp-py","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.21,"mem_mb":4.9,"disk_size":"21.0M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"stomp-py","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.7,"import_time_s":0.17,"mem_mb":4.9,"disk_size":"22M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"stomp-py","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.17,"mem_mb":4.8,"disk_size":"12.8M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"stomp-py","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.17,"mem_mb":4.8,"disk_size":"13M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"stomp-py","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.14,"mem_mb":5.2,"disk_size":"12.6M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"stomp-py","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.15,"mem_mb":5.2,"disk_size":"13M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"stomp-py","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.12,"mem_mb":4.2,"disk_size":"19.9M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"stomp-py","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.5,"import_time_s":0.1,"mem_mb":4.2,"disk_size":"20M"}]}}