{ "info": { "author": "Iotic Labs Ltd", "author_email": "info@iotic-labs.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: C", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# Overview\n\nThis is a Python v3.2+ (and 2.7+) [Universal Binary JSON](http://ubjson.org) encoder/decoder based on the [draft-12](UBJSON-Specification.md) specification.\n\n\n# Installing / packaging\n```shell\n# To get from PyPI\npip3 install py-ubjson\n\n# To only build extension modules inline (e.g. in repository)\npython3 setup.py build_ext -i\n\n# To build & install globally\npython3 setup.py install\n\n# To skip building of extensions when installing (or building)\nPYUBJSON_NO_EXTENSION=1 python3 setup.py install\n```\n**Notes**\n\n- The extension module is not required but provide a significant speed boost.\n- The above can also be run with v2.7+\n- This module is also available via [Anaconda (conda-forge)](https://anaconda.org/conda-forge/py-ubjson)\n- PyPI releases are signed with the [Iotic Labs Software release signing key](https://developer.iotic-labs.com/iotic-labs.com.asc)\n- At run time, one can check whether compiled version is in use via the _ubjson.EXTENSION_ENABLED_ boolean\n\n\n# Usage\nIt's meant to behave very much like Python's built-in [JSON module](https://docs.python.org/3/library/json.html), e.g.:\n```python\nimport ubjson\n\nencoded = ubjson.dumpb({u'a': 1})\n\ndecoded = ubjson.loadb(encoded)\n```\n**Note**: Only unicode strings in Python 2 will be encoded as strings, plain *str* will be encoded as a byte array.\n\n\n# Documentation\n```python\nimport ubsjon\nhelp(ubjson.dump)\nhelp(ubjson.load)\n```\n\n# Command-line utility\nThis converts between JSON and UBJSON formats:\n```shell\npython3 -mubjson\nUSAGE: ubjson (fromjson|tojson) (INFILE|-) [OUTFILE]\n```\n\n\n# Tests\n\n## Static\nThis library has been checked using [flake8](https://pypi.python.org/pypi/flake8) and [pylint](http://www.pylint.org), using a modified configuration - see _pylint.rc_ and _flake8.cfg_.\n\n## Unit\n```shell\npython3 -mvenv py\n. py/bin/activate\npip install -U pip setuptools\npip install -e .[dev]\n\n./coverage_test.sh\n```\n**Note**: See `coverage_test.sh` for additional requirements.\n\n\n# Limitations\n- The **No-Op** type is only supported by the decoder. (This should arguably be a protocol-level rather than serialisation-level option.) Specifically, it is **only** allowed to occur at the start or between elements of a container and **only** inside un-typed containers. (In a typed container it is impossible to tell the difference between an encoded element and a No-Op.)\n- Strongly-typed containers are only supported by the decoder (apart from for **bytes**/**bytearray**) and not for No-Op.\n- Encoder/decoder extensions are not supported at this time.\n\n\n# Why?\nThe only existing implementation I was aware of at the time of writing ([simpleubjson](https://github.com/brainwater/simpleubjson)) had the following limitations:\n\n- Does not support efficient binary encoding\n- Only supports draft-9\n- Only supports individual Python types rather than anything implementing an interface (e.g. _Mapping_)\n- Does not decode nested arrays or objects in expected form\n- Lacks C extension speed-up", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Iotic-Labs/py-ubjson", "keywords": "ubjson,ubj", "license": "Apache License 2.0", "maintainer": "Iotic Labs Ltd", "maintainer_email": "vilnis.termanis@iotic-labs.com", "name": "py-ubjson", "package_url": "https://pypi.org/project/py-ubjson/", "platform": "", "project_url": "https://pypi.org/project/py-ubjson/", "project_urls": { "Homepage": "https://github.com/Iotic-Labs/py-ubjson" }, "release_url": "https://pypi.org/project/py-ubjson/0.14.0/", "requires_dist": null, "requires_python": "", "summary": "Universal Binary JSON encoder/decoder", "version": "0.14.0" }, "last_serial": 5426747, "releases": { "0.10.0": [ { "comment_text": "", "digests": { "md5": "f27ede87174fb76354bb06848a89c3b7", "sha256": "b6d45d2cc4f1e58790a4eb1c3530fb6739fd5fd19ef2643ce090dc5878aa890e" }, "downloads": -1, "filename": "py-ubjson-0.10.0.tar.gz", "has_sig": true, "md5_digest": "f27ede87174fb76354bb06848a89c3b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44653, "upload_time": "2017-09-13T16:14:58", "url": "https://files.pythonhosted.org/packages/52/dd/760ff59b192f26218db4c26b48b9b4c9f53fa9cf47091d088b7a2a89d9ed/py-ubjson-0.10.0.tar.gz" } ], "0.11.0": [ { "comment_text": "", "digests": { "md5": "ce17e26420f663edcd4962957dbcaa33", "sha256": "81784e64936c12e218afc49ff4fb90702f298ac16848971d9570c87595860762" }, "downloads": -1, "filename": "py-ubjson-0.11.0.tar.gz", "has_sig": true, "md5_digest": "ce17e26420f663edcd4962957dbcaa33", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45473, "upload_time": "2017-11-29T12:31:21", "url": "https://files.pythonhosted.org/packages/a5/44/ca58905986bb070c94da4a3c4a5758c75ac1e2ed22150c30f61d9f76386d/py-ubjson-0.11.0.tar.gz" } ], "0.12.0": [ { "comment_text": "", "digests": { "md5": "5dbbecd3dbecd744e45f27f14e2da5e1", "sha256": "b796cb5077a06c932f0d148f4eef4ce0f045a05cb14393177a6d034be9f8e364" }, "downloads": -1, "filename": "py-ubjson-0.12.0.tar.gz", "has_sig": true, "md5_digest": "5dbbecd3dbecd744e45f27f14e2da5e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45535, "upload_time": "2018-08-03T06:57:38", "url": "https://files.pythonhosted.org/packages/68/9c/a6c34e565351f0b04bcf6835e38bc4bd0647269dc48670e12eb99a3f5ef5/py-ubjson-0.12.0.tar.gz" } ], "0.13.0": [ { "comment_text": "", "digests": { "md5": "3eda2bd1878e7cdb7d95d898646332e2", "sha256": "fdfcb858ba281895fa77a02cc00ae8d9da306dd758a23acf28d48dd1ed25a7d5" }, "downloads": -1, "filename": "py-ubjson-0.13.0.tar.gz", "has_sig": true, "md5_digest": "3eda2bd1878e7cdb7d95d898646332e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45670, "upload_time": "2019-04-09T13:53:37", "url": "https://files.pythonhosted.org/packages/2e/24/4de37ef24ca14b475dfe32665bf4faa15eaec95cb46b72038c8ac6ba716e/py-ubjson-0.13.0.tar.gz" } ], "0.14.0": [ { "comment_text": "", "digests": { "md5": "26c07be8e4c9f2b0ee7c42a9aca118ed", "sha256": "f742c87bccc8653329d3f79b8b3f40d44d11d17cce7f6d7025a73c52ebf91c66" }, "downloads": -1, "filename": "py-ubjson-0.14.0.tar.gz", "has_sig": true, "md5_digest": "26c07be8e4c9f2b0ee7c42a9aca118ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47892, "upload_time": "2019-06-20T16:58:56", "url": "https://files.pythonhosted.org/packages/10/31/0d8297c33d681aafa3fe900ca072a96d5acb97e79082fbb593e835376c93/py-ubjson-0.14.0.tar.gz" } ], "0.8.4": [ { "comment_text": "", "digests": { "md5": "7d7e7b9b67acfb8c6b417dab78ac4639", "sha256": "395c0cbbb097d88bb0db92fe1ac82d31b56f3be396946fe02d38f08e86a8efe9" }, "downloads": -1, "filename": "py-ubjson-0.8.4.tar.gz", "has_sig": true, "md5_digest": "7d7e7b9b67acfb8c6b417dab78ac4639", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 318574, "upload_time": "2016-04-19T15:48:12", "url": "https://files.pythonhosted.org/packages/bf/a3/990c47fa0d2d244a3d493ae917d5cbf2a0632c1ac6aa53445f4e53ce3675/py-ubjson-0.8.4.tar.gz" } ], "0.8.5": [ { "comment_text": "", "digests": { "md5": "09584b02508451a8133095c3b5f2bf41", "sha256": "e58e99753aaff3ed5d884989a6236bd98a4b0dfdb0e62f9753c20f485691fa9e" }, "downloads": -1, "filename": "py-ubjson-0.8.5.tar.gz", "has_sig": true, "md5_digest": "09584b02508451a8133095c3b5f2bf41", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 318626, "upload_time": "2016-07-13T09:18:58", "url": "https://files.pythonhosted.org/packages/99/12/173cd417cacdacd158f947365bb17952a93b4e9d08f8a2f4b77d6c17cb4e/py-ubjson-0.8.5.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "c78bbe899eeba9604302ad746094e8d1", "sha256": "b405daaa82acdf5989207e1e5ff6865ef7d23bf450513a6d90a1ab64c75bdcf8" }, "downloads": -1, "filename": "py-ubjson-0.9.0.tar.gz", "has_sig": true, "md5_digest": "c78bbe899eeba9604302ad746094e8d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43338, "upload_time": "2017-03-25T11:33:36", "url": "https://files.pythonhosted.org/packages/d4/40/a80006884ec03a54a5c6c53ae76df9978536862f0683b6e6280e3808d289/py-ubjson-0.9.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "26c07be8e4c9f2b0ee7c42a9aca118ed", "sha256": "f742c87bccc8653329d3f79b8b3f40d44d11d17cce7f6d7025a73c52ebf91c66" }, "downloads": -1, "filename": "py-ubjson-0.14.0.tar.gz", "has_sig": true, "md5_digest": "26c07be8e4c9f2b0ee7c42a9aca118ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47892, "upload_time": "2019-06-20T16:58:56", "url": "https://files.pythonhosted.org/packages/10/31/0d8297c33d681aafa3fe900ca072a96d5acb97e79082fbb593e835376c93/py-ubjson-0.14.0.tar.gz" } ] }