{ "info": { "author": "Keegan Callin", "author_email": "kc@kcallin.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Communications", "Topic :: Internet", "Topic :: Software Development", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "===========\nmqtt-codec\n===========\n\nA weapons grade MQTT packet encoder and decoder (codec).\n\n\nStatus\n=======\n\nThe `mqtt-codec` package is an\n`MQTT 3.1.1 `_\npacket encoder and decoder (codec). The library has high test coverage\n(~94%) and is known to perform well in distributed IoT networks with\nthousands of nodes.\n\n\nInstallation\n=============\n\nThe mqtt-codec package can be from ``_ with\n`pip `_:\n\n.. code-block:: bash\n\n pip install mqtt-codec\n\nUsage\n======\n\nAn encode/decode cycle looks like this:\n\n.. code-block:: python\n\n >>> from io import BytesIO\n >>> from binascii import b2a_hex\n >>> import mqtt_codec.packet\n >>> import mqtt_codec.io\n >>>\n >>> # Encode a Connect packet\n >>> will = mqtt_codec.packet.MqttWill(qos=0, topic='hello', message='message', retain=True)\n >>> connect = mqtt_codec.packet.MqttConnect(client_id='client_id', clean_session=False, keep_alive=0, will=will)\n >>> with BytesIO() as f:\n ... num_bytes_written = connect.encode(f)\n ... buf = f.getvalue()\n ...\n >>> assert len(buf) == num_bytes_written\n >>> print('0x{} ({} bytes)'.format(b2a_hex(buf), len(buf)))\n 0x102500044d515454042400000009636c69656e745f6964000568656c6c6f00076d657373616765 (39 bytes)\n >>>\n >>> # Decode the connect packet and assert equality.\n >>> with mqtt_codec.io.BytesReader(buf) as f:\n ... num_bytes_read, decoded_connect = connect.decode(f)\n ...\n >>> assert len(buf) == num_bytes_written\n >>> assert connect == decoded_connect\n >>> print(' Encoded {}'.format(connect))\n Encoded MqttConnect(client_id='client_id', clean_session=False, keep_alive=0, username=***, password=***, will=MqttWill(topic=hello, payload=0x6d657373616765, retain=True, qos=0))\n >>> print('= Decoded {}'.format(decoded_connect))\n = Decoded MqttConnect(client_id=u'client_id', clean_session=False, keep_alive=0, username=***, password=***, will=MqttWill(topic=hello, payload=0x6d657373616765, retain=True, qos=0))\n\n\nPython Requirements\n====================\n\nThe ``mqtt-codec`` project has been tested on Linux against these\nenvironments:\n\n* Python 2.7\n* Python 3.4\n* Python 3.5\n* Python 3.6\n* Python 3.7\n\nPython versions Python 3.0 - 3.3 may work but are not tested as part of\nthe project continuous integration infrastructure.\n\n\nLibrary Requirements\n=====================\n\nWhen running Python versions less than 3.4 the ``enum34`` package is\nrequired. There are no other package requirements.\n\n\nProject Infrastructure\n=======================\n\nThe project is coordinated through public infrastructure available at\nseveral places:\n\n* `Releases (pypi) `_\n* `Documentation (readthedocs.io) `_\n* `Bug Tracker (github) `_\n* `Code Repository (github) `_", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/kcallin/mqtt-codec", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "mqtt-codec", "package_url": "https://pypi.org/project/mqtt-codec/", "platform": "", "project_url": "https://pypi.org/project/mqtt-codec/", "project_urls": { "Bug Tracker": "https://github.com/kcallin/mqtt-codec/issues", "Documentation": "https://mqtt-codec.readthedocs.io/en/latest/", "Homepage": "https://github.com/kcallin/mqtt-codec", "Source Code": "https://github.com/kcallin/mqtt-codec" }, "release_url": "https://pypi.org/project/mqtt-codec/1.0.2/", "requires_dist": null, "requires_python": ">=2.7", "summary": "Weapons grade MQTT packet codec.", "version": "1.0.2" }, "last_serial": 4748783, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "a1cabad1a3d0d08f633c768c19cb34a8", "sha256": "4b6be5fd1ffefafd153fb0c083ef98bb7af9b44a7436a451a7b0bd28e523d641" }, "downloads": -1, "filename": "mqtt-codec-0.1.0.tar.gz", "has_sig": true, "md5_digest": "a1cabad1a3d0d08f633c768c19cb34a8", "packagetype": "sdist", "python_version": "source", "requires_python": "==2.7.*", "size": 11712, "upload_time": "2018-10-04T01:02:34", "url": "https://files.pythonhosted.org/packages/8b/a5/b5fe010f97722b28801cc40179959d48937bf5ef315dc4ce3060c7469f91/mqtt-codec-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "16a25ba349107524daf48411467690cb", "sha256": "a3fdb652237a9e4d2a72dc7c1cc27043d55c6b4c7dad103dabf7e38a1206ec02" }, "downloads": -1, "filename": "mqtt-codec-0.1.1.tar.gz", "has_sig": true, "md5_digest": "16a25ba349107524daf48411467690cb", "packagetype": "sdist", "python_version": "source", "requires_python": "==2.7.*", "size": 12138, "upload_time": "2018-10-23T00:29:31", "url": "https://files.pythonhosted.org/packages/37/63/4ad142225806ad502d050498a8bc0d4cf2c5db616c9b4dfbb8a21868c4b2/mqtt-codec-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "2d7a7a383639cf3f34a06d5278165db5", "sha256": "3264ba3ebf34c46f6046d045a80ebd48e14960ff5f68e5998d5556d0d2f444bd" }, "downloads": -1, "filename": "mqtt-codec-0.1.2.tar.gz", "has_sig": true, "md5_digest": "2d7a7a383639cf3f34a06d5278165db5", "packagetype": "sdist", "python_version": "source", "requires_python": "~=2.7,~=3.6", "size": 13290, "upload_time": "2018-11-16T04:41:12", "url": "https://files.pythonhosted.org/packages/44/36/020e4423ebb94fbf773b8d07677a9cdbcdcfa88f46fd155e17da3073f2a9/mqtt-codec-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "b7a3c4989c71a629cb370068c1ce9bd1", "sha256": "024f22b92e91fe961bddd3b518d6e7eb3d6ec5860dd1e732a63b25dbad750110" }, "downloads": -1, "filename": "mqtt-codec-0.1.3.tar.gz", "has_sig": true, "md5_digest": "b7a3c4989c71a629cb370068c1ce9bd1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 11906, "upload_time": "2018-11-18T06:43:43", "url": "https://files.pythonhosted.org/packages/76/15/91e8470878268f111552e16829d10c8d3b4196af1e3b0b548737f54f8fcf/mqtt-codec-0.1.3.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "95aec10d3b7fe954e536a1520124b8e3", "sha256": "7fbbbf3eb5ec9c5f59b51c7bf3c40095bb2b4f5a49648795f890adfa63fcbd1c" }, "downloads": -1, "filename": "mqtt-codec-1.0.0.tar.gz", "has_sig": true, "md5_digest": "95aec10d3b7fe954e536a1520124b8e3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 13617, "upload_time": "2018-11-25T03:27:23", "url": "https://files.pythonhosted.org/packages/90/4d/246a2da6cbaa6c2fc50b531cc2373895ab9fdf14292d32b9fb7347f59768/mqtt-codec-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "9083e47ff66c67413b056d2f197b9ec5", "sha256": "bdb9d50a2f3823e499820c548baff90759e11c6d569a30238d8f52dfb68bad50" }, "downloads": -1, "filename": "mqtt-codec-1.0.1.tar.gz", "has_sig": true, "md5_digest": "9083e47ff66c67413b056d2f197b9ec5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 14230, "upload_time": "2018-11-29T03:03:38", "url": "https://files.pythonhosted.org/packages/52/ac/0a10cd94097c90661ccad1919a8598e9b5f785611a094d86bcb18d6013f8/mqtt-codec-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "a5abf9c51025dc6cfb72bfedde35c805", "sha256": "0ef4958cd37db7bfa76173abd73fc46081f2ff4297c54f3fc7853c300c1606ad" }, "downloads": -1, "filename": "mqtt-codec-1.0.2.tar.gz", "has_sig": true, "md5_digest": "a5abf9c51025dc6cfb72bfedde35c805", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 14729, "upload_time": "2019-01-28T07:12:39", "url": "https://files.pythonhosted.org/packages/9c/27/52ce163f05298f530ca115a95ed30da50db86ae51513765c4cb9328a06c0/mqtt-codec-1.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a5abf9c51025dc6cfb72bfedde35c805", "sha256": "0ef4958cd37db7bfa76173abd73fc46081f2ff4297c54f3fc7853c300c1606ad" }, "downloads": -1, "filename": "mqtt-codec-1.0.2.tar.gz", "has_sig": true, "md5_digest": "a5abf9c51025dc6cfb72bfedde35c805", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 14729, "upload_time": "2019-01-28T07:12:39", "url": "https://files.pythonhosted.org/packages/9c/27/52ce163f05298f530ca115a95ed30da50db86ae51513765c4cb9328a06c0/mqtt-codec-1.0.2.tar.gz" } ] }