{ "info": { "author": "AppNexus", "author_email": "", "bugtrack_url": null, "classifiers": [], "description": "# Pyrobuf Library\n\n### Introduction\n\nPyrobuf is an alternative to Google's Python Protobuf library.\n\nIt generates lightning-fast Cython code that's 2-4x faster than Google's Python\nProtobuf library using their C++ backend and 20-40x faster than Google's pure-python\nimplementation.\n\nWhat's more, Pyrobuf is self-contained and easy to install.\n\n\n### Requirements\n\nPyrobuf requires Cython, and Jinja2. If you want to contribute to pyrobuf you\nmay also want to install pytest.\n\nPyrobuf *does not* require protoc.\n\nPyrobuf has been tested with Python 2.7 and Python 3.5.\n\nPyrobuf appears to be working on OSX, Linux and Windows (for the latter getting\nCython to work properly is the trickiest bit especially if you are still using\n2.7).\n\n\n### Contributing\n\nPeople use protobuf in many different ways. Pyrobuf handles the use cases of\nAppNexus and other contributors, but is not yet a 100% drop-in replacement to\nwhat protoc would generate.\n\nYou can help make it so!\n\nFork and clone the repository, then run:\n\n $ python setup.py develop\n\nIt will generate the platform specific `pyrobuf_list` then compile\nthe `pyrobuf_list` and `pyrobuf_util` modules.\n\n\n### Unit Testing\n\nYou can run the test suite (a work in progress) using py.test directly:\n\n $ py.test\n\nOr using the `test` command (which installs pytest if not already available):\n\n $ python setup.py test\n\nEither method will automatically build all the protobuf message specs in\n`tests/proto` and point the `PYTHONPATH` to the built messages before running\nthe tests.\n\nRe-running the `develop` or `test` commands will automatically re-build the\n`pyrobuf_list` and `pyrobuf_util` modules if necessary.\n\nThe `clean` command does the house keeping for you:\n\n $ python setup.py clean\n\nIf you find that pyrobuf does not work for one of your proto files, add a minimal\nproto file to `tests/proto` that breaks before submitting a pull request.\n\nPull requests including a breaking test are gold!\n\nImproving testing is in the cards.\n\n\n### Installation\n\nYou may very well be able to just use pyrobuf as is... just pip it!\n\n```\n$ pip install pyrobuf\n```\nShould do the trick!\n\nTo check, you may want to make sure the following command does not raise an\nexception:\n\n $ python -c \"import pyrobuf_list\"\n\nIf it does raise an exception try:\n\n```\n$ pip install pyrobuf -v -v -v --upgrade --force --no-cache\n```\n\n\n### Compiling\n\nWhen you `pip install pyrobuf` you get the pyrobuf CLI tool ...:\n\n $ pyrobuf --help\n usage: pyrobuf [-h] [--out-dir OUT_DIR] [--build-dir BUILD_DIR] [--install]\n source\n\n a Cython based protobuf compiler\n\n positional arguments:\n source filename.proto or directory containing proto files\n\n optional arguments:\n -h, --help show this help message and exit\n --out-dir OUT_DIR cythonize output directory [default: out]\n --build-dir BUILD_DIR\n C compiler build directory [default: build]\n --install install the extension [default: False]\n --package the name of the package to install to\n\nIf you do not want to have to deal with setuptools entry_points idiosyncrasies\nyou can also do:\n\n $ python -m pyrobuf --help\n\n\n### Use\n\nSuppose you have installed `test_message.proto` which contains a spec for the\nmessage `Test`. In Python, you can import your new message class by running:\n```\nfrom test_message_proto import Test\n```\n\nWith the message class imported, we can create a new message:\n```\ntest = Test()\n```\n\nNow that we have instantiated a message `test`, we can fill individual fields:\n```\n>>> test.field = 5\n>>> test.req_field = 2\n>>> test.string_field = \"hello!\"\n>>> test.list_fieldx.append(12)\n>>> test.test_ref.field2 = 3.14\n```\n\nAnd access those same fields:\n```\n>>> test.string_field\n'hello!'\n```\n\nOnce we have at least filled out any \"required\" fields, we can serialize to a\nbyte array:\n```\n>>> test.SerializeToString()\nbytearray(b'\\x10\\x05\\x1a\\x06hello! \\x0c2\\t\\x19\\x1f\\x85\\xebQ\\xb8\\x1e\\t@P\\x02')\n```\n\nWe can also deserialize a protobuf message to our message instance:\n```\n>>> test.ParseFromString('\\x10\\x05\\x1a\\x06hello! \\x0c2\\t\\x19\\x1f\\x85\\xebQ\\xb8\\x1e\\t@P\\x02')\n25\n```\nNote that the `ParseFromString` method returns the number of bytes consumed.\n\nIn addition to serializing and deserializing to and from protobuf messages,\nPyrobuf also allows us to serialize and deserialize to and from JSON and native\nPython dictionaries:\n```\n>>> test.SerializeToJson()\n'{\"field\": 5, \"req_field\": 2, \"list_fieldx\": [12], \"string_field\": \"hello!\", \"test_ref\": {\"field2\": 3.14}}'\n\n>>> test.ParseFromJson('{\"field\": 5, \"req_field\": 2, \"list_fieldx\": [12], \"string_field\": \"hello!\", \"test_ref\": {\"field2\": 3.14}}')\n\n>>> test.SerializeToDict()\n{'field': 5,\n 'list_fieldx': [12],\n 'req_field': 2,\n 'string_field': 'hello!',\n 'test_ref': {'field2': 3.14}}\n\n>>> test.ParseFromDict({'field': 5, 'list_fieldx': [12], 'req_field': 2, 'string_field': 'hello!', 'test_ref': {'field2': 3.14}})\n```\n\nFinally, the `pyrobuf_util` module contains functions for encoding and decoding integers.\n\n```\n>>> import pyrobuf_util\n>>> pyrobuf_util.to_varint(2**16-1)\nbytearray(b'\\xff\\xff\\x03')\n>>> pyrobuf_util.from_varint(b'\\xff\\xff\\x03', offset=0)\n(65535L, 3)\n>>> pyrobuf_util.to_signed_varint(-2**16)\nbytearray(b'\\xff\\xff\\x07')\n>>> pyrobuf_util.from_signed_varint(b'\\xff\\xff\\x07', offset=0)\n(-65536L, 3)\n```\n\nThe `from_varint` and `from_signed_varint` functions return both the decoded integer and\nthe offset of the first byte after the encoded integer in the source data.\n\n### Packaging\n\nIf you are compiling multiple messages or a directory of messages and don't want them\nall to be built to their own separate package but instead want a single namespace\ncontaining all your messages, you can specify a package name:\n```\npyrobuf /path/to/proto/specs --install --package=my_messages\n```\n\nThen you can import your message classes from the `my_messages` pakcage:\n```\n>>> from my_messages import MyMessage1, MyMessage2\n```\n\n### Distributing a Python Package with Pyrobuf Modules\n\nSuppose you have a Python package called 'sample' arranged on disk as follows:\n```\nsample/\n proto/\n my_message.proto\n sample/\n __init__.py\n setup.py\n```\n\nPyrobuf adds a new setup keyword `pyrobuf_modules` which can be used to specify either\nindividual protobuf files or folders containing protobuf files. For example, the `setup.py`\nfile could look like this:\n \n```\nfrom setuptools import setup, find_packages\n\nsetup(\n name=\"sample\",\n version=\"0.1\",\n packages=find_packages(),\n description=\"A sample package\",\n install_requires=['pyrobuf'],\n setup_requires=['pyrobuf'],\n pyrobuf_modules=\"proto\"\n)\n```\n\nIn addition to the package \"sample\", setuptools will also build a package named\n\"sample_proto\" which will contain the compiled Protobuf messages.\n\nOnce installed this sample package can be used as follows:\n\n```\n>>> from sample_proto import MyMessage\n>>> my_message = MyMessage()\n```\n\n### Performance\n\nOn my development machine (Ubuntu 14.04), Pyrobuf is roughly 2.0x as fast as\nGoogle's library for message serialization and 2.3x as fast for message\ndeserialization when using the C++ backend for Google's library:\n```\n> python tests/perf_test.py\nGoogle took 1.649168 seconds to serialize\nPyrobuf took 0.825525 seconds to serialize\nGoogle took 1.113041 seconds to deserialize\nPyrobuf took 0.466113 seconds to deserialize\n```\n\nWhen not using the C++ backend, Pyrobuf is roughly 25x as fast for serialization\nand 55x as fast for deserialization:\n```\nGoogle took 20.215662 seconds to serialize\nPyrobuf took 0.819555 seconds to serialize\nGoogle took 24.990137 seconds to deserialize\nPyrobuf took 0.455732 seconds to deserialize\n```\n\n### Differences from the Google library\n\nIf pyrobuf is missing a feature from protoc that you need, let us know! We are\ntrying to make it as easy as possible for you to help make pyrobuf better.\n\nFor the most part, Pyrobuf should be a drag-and-drop replacement for the Google\nprotobuf library. There are a few differences, though. First, Pyrobuf does not\ncurrently implement the `ListFields`, `WhichOneOf`, `HasExtension`,\n`ClearExtension` and `ByteSize` methods.\n\nSecond, Pyrobuf simply assumes that the schema being used for a given message\nis the same on the send and receive ends, so changing the type of a field on\none end without changing it on the other may cause bugs; adding or removing\nfields will not break anything.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/appnexus/pyrobuf", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "pyrobuf", "package_url": "https://pypi.org/project/pyrobuf/", "platform": "", "project_url": "https://pypi.org/project/pyrobuf/", "project_urls": { "Homepage": "https://github.com/appnexus/pyrobuf" }, "release_url": "https://pypi.org/project/pyrobuf/0.9.0/", "requires_dist": null, "requires_python": "", "summary": "A Cython based protobuf compiler", "version": "0.9.0" }, "last_serial": 4982823, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "afa4a69c0d227be2701edaa4438a5061", "sha256": "77403211e13688a21a9d0af52a890c09a74541986d1ef26bb7aa32c7d1bc36dc" }, "downloads": -1, "filename": "pyrobuf-0.0.1.tar.gz", "has_sig": false, "md5_digest": "afa4a69c0d227be2701edaa4438a5061", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16304, "upload_time": "2016-01-21T23:43:05", "url": "https://files.pythonhosted.org/packages/04/1e/7b18e9091026a3453290e78e661bc69a63783842271d48cbbe3e19306ab9/pyrobuf-0.0.1.tar.gz" } ], "0.0.1a0": [ { "comment_text": "", "digests": { "md5": "6477fc0b3f1e15b3af1845663e39b49f", "sha256": "cd2d5b94e937862495313e40a0b78a42d1e9537187fa222bd0453ef3ff850674" }, "downloads": -1, "filename": "pyrobuf-0.0.1a0.tar.gz", "has_sig": false, "md5_digest": "6477fc0b3f1e15b3af1845663e39b49f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16047, "upload_time": "2016-01-18T10:41:58", "url": "https://files.pythonhosted.org/packages/30/48/7ef1072d0c93b2fffb1be8f936b0e4f6c3c733dcfb699b5467245c58804d/pyrobuf-0.0.1a0.tar.gz" } ], "0.0.2a0": [ { "comment_text": "", "digests": { "md5": "d0a0c60ac920f7d2f149fbf674ef75cf", "sha256": "dc180d482cc10ef8246e09992310e59a8a89e5f74781a8c4866a8cdd3bcfb6aa" }, "downloads": -1, "filename": "pyrobuf-0.0.2a0.tar.gz", "has_sig": false, "md5_digest": "d0a0c60ac920f7d2f149fbf674ef75cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16323, "upload_time": "2016-01-22T11:00:45", "url": "https://files.pythonhosted.org/packages/71/27/1ef265037375b2915b0e64ec79ca7f7b11bc8cd64fe38169f170a8ae9ac0/pyrobuf-0.0.2a0.tar.gz" } ], "0.0.2a1": [ { "comment_text": "", "digests": { "md5": "118dbd935a0b693a727c5721ad49aafe", "sha256": "9382b73d8c21ff174ff95094c629b6b0fb6eac6b5947cd4c78c5bffa1b173056" }, "downloads": -1, "filename": "pyrobuf-0.0.2a1.tar.gz", "has_sig": false, "md5_digest": "118dbd935a0b693a727c5721ad49aafe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18830, "upload_time": "2016-01-22T11:07:36", "url": "https://files.pythonhosted.org/packages/ac/44/2850a8d06d1e3071ed93499fd5de84bc835620fb65410bf29430a525109e/pyrobuf-0.0.2a1.tar.gz" } ], "0.0.2a2": [ { "comment_text": "", "digests": { "md5": "8ba6607fb8227db100ecadd57aea05e9", "sha256": "fe029dc16041a431a7a21432eb317120c78750f8ad7cb0b39b9a58ce77f6617a" }, "downloads": -1, "filename": "pyrobuf-0.0.2a2.tar.gz", "has_sig": false, "md5_digest": "8ba6607fb8227db100ecadd57aea05e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18839, "upload_time": "2016-01-22T11:10:51", "url": "https://files.pythonhosted.org/packages/42/3c/568bcaec8a2f134593d281f1d209dc42ced78ab9f41a1b107e9927f0802c/pyrobuf-0.0.2a2.tar.gz" } ], "0.0.2a3": [ { "comment_text": "", "digests": { "md5": "d040c3d06d17f677fca95c612e4f6478", "sha256": "1c4e1b51222f100d1ebd6f4b4982140cc22ac22c71a5d78b12dd61ac75d65232" }, "downloads": -1, "filename": "pyrobuf-0.0.2a3.tar.gz", "has_sig": false, "md5_digest": "d040c3d06d17f677fca95c612e4f6478", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18766, "upload_time": "2016-01-22T11:13:57", "url": "https://files.pythonhosted.org/packages/85/84/bd6f61ba3e92d63e73c1f5e95976b5992cfc0db128fd157e037e61fa9403/pyrobuf-0.0.2a3.tar.gz" } ], "0.0.2a4": [ { "comment_text": "", "digests": { "md5": "68fe24131b325d0013cbd4a23b0d7bb7", "sha256": "10c7c3fc86bccf61aae85ae4c819a1b8a86ba543bbc72a7abf5c2304e6225226" }, "downloads": -1, "filename": "pyrobuf-0.0.2a4.tar.gz", "has_sig": false, "md5_digest": "68fe24131b325d0013cbd4a23b0d7bb7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20296, "upload_time": "2016-01-23T09:03:43", "url": "https://files.pythonhosted.org/packages/45/08/5ddd6baa5d1b0a0c5b54da4bd5e7f0bcc4df28d2dbd498b281103d3814ae/pyrobuf-0.0.2a4.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "07624f4cd0250738ea77b27635617461", "sha256": "b73dbf1ab491e4f27a1f1db0309a7dd0ae021e91e79c95a29af37ffa3bfc126c" }, "downloads": -1, "filename": "pyrobuf-0.5.0.tar.gz", "has_sig": false, "md5_digest": "07624f4cd0250738ea77b27635617461", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21898, "upload_time": "2016-01-26T23:48:14", "url": "https://files.pythonhosted.org/packages/a0/72/e36b652a43672e5ed3d6e819d27061d6783b265886d62b06191043c31c9e/pyrobuf-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "589b57b50ed1c1ee1074255b1eaebb8e", "sha256": "7087cf18b82c3cda8df1756de2672b2139b075e5eb494d853c4e8fbab5ba63b0" }, "downloads": -1, "filename": "pyrobuf-0.5.1.tar.gz", "has_sig": false, "md5_digest": "589b57b50ed1c1ee1074255b1eaebb8e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21905, "upload_time": "2016-01-27T01:16:39", "url": "https://files.pythonhosted.org/packages/9d/df/b5c4561e635c3ac3e1348371dc11ceafbb1a181012b49d9f0f192ccad871/pyrobuf-0.5.1.tar.gz" } ], "0.5.10": [ { "comment_text": "", "digests": { "md5": "39080e340b2f4385e4ae0294a73a77c1", "sha256": "f5a50fe76b4b1a8cb5374071ab86264d0b68d63b87d3761c9f4b52350dd40a88" }, "downloads": -1, "filename": "pyrobuf-0.5.10.tar.gz", "has_sig": false, "md5_digest": "39080e340b2f4385e4ae0294a73a77c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 175932, "upload_time": "2016-06-19T04:20:03", "url": "https://files.pythonhosted.org/packages/9b/98/d03e1194e5f60ed4dc0f462cf5658fff3556d48de9643a49566f1463d67b/pyrobuf-0.5.10.tar.gz" } ], "0.5.11": [ { "comment_text": "", "digests": { "md5": "51f427980315980da2b97a8859239964", "sha256": "680263211f7a8db376a948389aa5cd4f2c21661824f17a6842249faaab88dfe8" }, "downloads": -1, "filename": "pyrobuf-0.5.11.tar.gz", "has_sig": false, "md5_digest": "51f427980315980da2b97a8859239964", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 179399, "upload_time": "2016-06-20T21:01:29", "url": "https://files.pythonhosted.org/packages/02/4e/4abc61eab374c2f6b9893dd395a32f9d6a67da8cc7dd95fb1b8c0d36bf3f/pyrobuf-0.5.11.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "b01d7659e13af1dc65532e0851369fe6", "sha256": "ea117f2ed1683c63c0a9a76f869a1a9043c020cec9c28695eb90883d9ff4a90d" }, "downloads": -1, "filename": "pyrobuf-0.5.2.tar.gz", "has_sig": false, "md5_digest": "b01d7659e13af1dc65532e0851369fe6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22006, "upload_time": "2016-02-03T22:45:17", "url": "https://files.pythonhosted.org/packages/87/e1/52ea64e21ebdfd6fedb8339a9e1b1cc7ec86703f3dc0c86761dc5b1b6fa0/pyrobuf-0.5.2.tar.gz" } ], "0.5.2a0": [ { "comment_text": "", "digests": { "md5": "eaeb6b9f6085c582e77d6eaa5ec84655", "sha256": "ab80930fe5d43d7df63b9b1e7155595e1e66019933d1ccce95a6c16d4cf1b930" }, "downloads": -1, "filename": "pyrobuf-0.5.2a0.tar.gz", "has_sig": false, "md5_digest": "eaeb6b9f6085c582e77d6eaa5ec84655", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22019, "upload_time": "2016-02-03T06:15:05", "url": "https://files.pythonhosted.org/packages/2e/8d/3548791eaf216f37da62ed6a73935f80fef01cd93a9a454bc293e441c923/pyrobuf-0.5.2a0.tar.gz" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "6c6b047f8bdc8869eb954c6e37ca1f49", "sha256": "f823d4bd0323f256c4daf00be51f6af98ba2648cfafb98658fb622905d7a7367" }, "downloads": -1, "filename": "pyrobuf-0.5.3.tar.gz", "has_sig": false, "md5_digest": "6c6b047f8bdc8869eb954c6e37ca1f49", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22183, "upload_time": "2016-02-11T17:45:16", "url": "https://files.pythonhosted.org/packages/03/dd/07736f4b7bcf69665cc910be5c6b1c53a7dddce1ac202702c25f8c6317be/pyrobuf-0.5.3.tar.gz" } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "6ab37783bec5e156ce7f8f6f2277c2d3", "sha256": "d8c70343aec3756a076f52c482edbdc4a6ec884ae3b400b03758efb90b554581" }, "downloads": -1, "filename": "pyrobuf-0.5.4.tar.gz", "has_sig": false, "md5_digest": "6ab37783bec5e156ce7f8f6f2277c2d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21223, "upload_time": "2016-03-03T20:48:28", "url": "https://files.pythonhosted.org/packages/5a/45/be2fa3d65896e08534805cf5e8e2cf7697e0b19dc2fc23b3b783fdfd93f1/pyrobuf-0.5.4.tar.gz" } ], "0.5.5": [ { "comment_text": "", "digests": { "md5": "5849faa0f99acd176eed621004ab0c8a", "sha256": "00dcc6439f6293f35b3c481b21f5ee3d2659e4df2266b4a98ca02f743f8533f8" }, "downloads": -1, "filename": "pyrobuf-0.5.5.tar.gz", "has_sig": false, "md5_digest": "5849faa0f99acd176eed621004ab0c8a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23171, "upload_time": "2016-03-17T19:03:41", "url": "https://files.pythonhosted.org/packages/a5/79/99019974c467857ae424f3082e296edda0b67913421a5fa64cafd3a38665/pyrobuf-0.5.5.tar.gz" } ], "0.5.6": [ { "comment_text": "", "digests": { "md5": "eee6b3ab8c9b9f2bdb7974e153e62134", "sha256": "c9b0a267369f884abdbf2e9fe9a9bd560a2529064767276c48fa1b4d3178b24b" }, "downloads": -1, "filename": "pyrobuf-0.5.6.tar.gz", "has_sig": false, "md5_digest": "eee6b3ab8c9b9f2bdb7974e153e62134", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25392, "upload_time": "2016-03-29T05:07:38", "url": "https://files.pythonhosted.org/packages/17/67/aeefab96c2593de440be2f08901d05d062af58bd20831bef3ccd9f13fd88/pyrobuf-0.5.6.tar.gz" } ], "0.5.7": [ { "comment_text": "", "digests": { "md5": "a46fd908835c6d7dfaf3e46f0eef6049", "sha256": "b1e0e4ce61a1a9b9eb739d368f3be928dc04f590e626f0d22f3dd71a28c4a262" }, "downloads": -1, "filename": "pyrobuf-0.5.7.tar.gz", "has_sig": false, "md5_digest": "a46fd908835c6d7dfaf3e46f0eef6049", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 157911, "upload_time": "2016-03-31T23:02:45", "url": "https://files.pythonhosted.org/packages/4a/37/0a2a857a44ba63576f4cf8142b6265a22885845b50ac59a745c4666f7e9f/pyrobuf-0.5.7.tar.gz" } ], "0.5.8": [ { "comment_text": "", "digests": { "md5": "dd35234620ee3f46e36eb6958217d83b", "sha256": "c31729537d90e5311205dc49f5004e183bf26f9b73d4a690fc0780619569d9f9" }, "downloads": -1, "filename": "pyrobuf-0.5.8.tar.gz", "has_sig": false, "md5_digest": "dd35234620ee3f46e36eb6958217d83b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 180510, "upload_time": "2016-05-21T21:19:33", "url": "https://files.pythonhosted.org/packages/51/50/72516eadcb3f7bfaa0bb1dda2f780ffaccb0051b1fb7b20e7588d730bbd4/pyrobuf-0.5.8.tar.gz" } ], "0.5.9": [ { "comment_text": "", "digests": { "md5": "10f370152997b78ce83f17483f768f20", "sha256": "7a9349afc836415e13f4b2a183e70d2ee55271cc694cfa88491813fc332d64e1" }, "downloads": -1, "filename": "pyrobuf-0.5.9.tar.gz", "has_sig": false, "md5_digest": "10f370152997b78ce83f17483f768f20", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 180624, "upload_time": "2016-05-24T10:25:57", "url": "https://files.pythonhosted.org/packages/f1/e2/ba258ee9ca4ec38e4f9d458eb069341467aea06f39cb09309e23931b9a9d/pyrobuf-0.5.9.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "8202600852627efacd5e20c29fba41a1", "sha256": "e1f9d27dd6fc583d9334b4415d9a00e4f18ea17327522d67d458f694c9f12376" }, "downloads": -1, "filename": "pyrobuf-0.6.0.tar.gz", "has_sig": false, "md5_digest": "8202600852627efacd5e20c29fba41a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 206544, "upload_time": "2017-10-18T19:42:42", "url": "https://files.pythonhosted.org/packages/ff/54/a1436477c98e68e084aaae7098d1e32ff38b0751b08e22b3d5795deabde4/pyrobuf-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "3a0ab43b1dff10aacc023ab6bb93dc55", "sha256": "8bfb54d816d39e3116e6770eef687d1d5a72929e645a36a7286641d556422323" }, "downloads": -1, "filename": "pyrobuf-0.6.1.tar.gz", "has_sig": false, "md5_digest": "3a0ab43b1dff10aacc023ab6bb93dc55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 206650, "upload_time": "2017-10-18T20:59:48", "url": "https://files.pythonhosted.org/packages/15/9e/ad14d87479a494042b175421e9fed1e354746214da8945c4ba1e5db371f9/pyrobuf-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "38ce3cbcfa65e11322bf2f68305f8815", "sha256": "fdcd98e129c4cbf53ba1eb82cde5b1210f81285720e783b47cb0fbf059b8acbb" }, "downloads": -1, "filename": "pyrobuf-0.6.2.tar.gz", "has_sig": false, "md5_digest": "38ce3cbcfa65e11322bf2f68305f8815", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 207301, "upload_time": "2017-10-27T17:40:41", "url": "https://files.pythonhosted.org/packages/08/44/9e129be3adfc15afed8f1ee0b4a5cb3f0c1a69ffc3a3f63dc4ccfb3ee6ba/pyrobuf-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "23da2f98c3afb47584cffa24bf0fa915", "sha256": "42365b96a9baf1bc89b9ac344192e1ef26126d16db748883bf568ce48e0a2b3a" }, "downloads": -1, "filename": "pyrobuf-0.6.3.tar.gz", "has_sig": false, "md5_digest": "23da2f98c3afb47584cffa24bf0fa915", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 207917, "upload_time": "2017-12-01T22:20:38", "url": "https://files.pythonhosted.org/packages/53/bb/6f6ceb2cd4adc513bd4c504fc7a1c52fa64e8f3a603c01a9026831e95d4e/pyrobuf-0.6.3.tar.gz" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "93abf5f762f1b7ff2410baee77794ec5", "sha256": "88af1072d1408bd528680cc6ec3cfd3c0c705cebbf4347d8157a29be854489de" }, "downloads": -1, "filename": "pyrobuf-0.6.4.tar.gz", "has_sig": false, "md5_digest": "93abf5f762f1b7ff2410baee77794ec5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 207922, "upload_time": "2017-12-15T21:21:32", "url": "https://files.pythonhosted.org/packages/3e/60/ff4947c8e1847df9f8f0fcdf5099166e3bdf3ef77266328d601f42b80625/pyrobuf-0.6.4.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "f4605e31f216510ae24c7bd894cfa7c0", "sha256": "30b86691b7bb87b42a7ca088cb7cf29f5a81ee0e19bd73bbf643a219000cafcc" }, "downloads": -1, "filename": "pyrobuf-0.7.0.tar.gz", "has_sig": false, "md5_digest": "f4605e31f216510ae24c7bd894cfa7c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 222606, "upload_time": "2018-03-12T18:08:11", "url": "https://files.pythonhosted.org/packages/c2/51/efdcd8eb6c8cd6f310b1125f2c4bc133f3172603637ae834cbe17d7eb5f6/pyrobuf-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "4a507f2c05ac53819ee4043d365eec76", "sha256": "810397fd3aabe858269bdc410ab1e452c0b5573d51c0180fd4a34799d8f190c7" }, "downloads": -1, "filename": "pyrobuf-0.7.1.tar.gz", "has_sig": false, "md5_digest": "4a507f2c05ac53819ee4043d365eec76", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 233439, "upload_time": "2018-03-15T21:02:30", "url": "https://files.pythonhosted.org/packages/ef/ed/a8733a54fa60feb55807bd9b92c3a0f7c31c6c1b6de7a2aae4df37652976/pyrobuf-0.7.1.tar.gz" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "b74309dd0bb4fd4ab74f65a3b2b01fe2", "sha256": "5900d4fc05fb81f082293b4be32e73bcf885b69f0e8aa58441d6a9671b13679c" }, "downloads": -1, "filename": "pyrobuf-0.7.2.tar.gz", "has_sig": false, "md5_digest": "b74309dd0bb4fd4ab74f65a3b2b01fe2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 233440, "upload_time": "2018-05-11T19:31:40", "url": "https://files.pythonhosted.org/packages/fd/80/266000dfe35f3acd0b440a0f6e43f59d1e475b20c64a4441a46762e8f050/pyrobuf-0.7.2.tar.gz" } ], "0.7.3": [ { "comment_text": "", "digests": { "md5": "b43ef2f4d7705579534f815671cd56f9", "sha256": "09ba3222bf3e36e906e033d86619d58404ac191bd50cb2cc477dae371d9e0df4" }, "downloads": -1, "filename": "pyrobuf-0.7.3.tar.gz", "has_sig": false, "md5_digest": "b43ef2f4d7705579534f815671cd56f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 231819, "upload_time": "2018-05-11T20:56:09", "url": "https://files.pythonhosted.org/packages/bb/20/a06ec8ffeaf965a745c7ff72a392d83076a39cc5f1261e16470ccd60296f/pyrobuf-0.7.3.tar.gz" } ], "0.7.4": [ { "comment_text": "", "digests": { "md5": "ead423035e076b4b64199fcfdd48bf45", "sha256": "766293a8c0cc0823666b9f58189711f177dc7f95ebfb089d1ae71fb1534e16a2" }, "downloads": -1, "filename": "pyrobuf-0.7.4.tar.gz", "has_sig": false, "md5_digest": "ead423035e076b4b64199fcfdd48bf45", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 232097, "upload_time": "2018-06-08T15:26:05", "url": "https://files.pythonhosted.org/packages/c4/b8/31b328930055557763b489d9ffe8b353d429823dfca8d2ba262664253161/pyrobuf-0.7.4.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "2a034ed162ac71db72b1e68e304b533b", "sha256": "7170d8060b33d6fea6a70cef937483267fbfc6a6b73a064700fc1b073de9eda6" }, "downloads": -1, "filename": "pyrobuf-0.8.0.tar.gz", "has_sig": false, "md5_digest": "2a034ed162ac71db72b1e68e304b533b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 232656, "upload_time": "2018-06-22T17:07:58", "url": "https://files.pythonhosted.org/packages/c2/c1/c8f3d222cfe9e78b6c882bdcca927e3ba083fd9b0339aceb1b43ae40b7d0/pyrobuf-0.8.0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "8171b1d87ccfc9d329f668efb1ff8cbf", "sha256": "cfb6c714786a929ac8fc86ed8819c304fd1e4f33f01a73f783081d0258676d64" }, "downloads": -1, "filename": "pyrobuf-0.8.1.tar.gz", "has_sig": false, "md5_digest": "8171b1d87ccfc9d329f668efb1ff8cbf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 233707, "upload_time": "2018-09-12T16:57:50", "url": "https://files.pythonhosted.org/packages/35/98/3a2a878bc7897d643f5fd0f7341147194c396a9adf334054d57e6ba3d6dc/pyrobuf-0.8.1.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "8576ec0ae400059fb0f1d634ef7d34ef", "sha256": "688f00e6e6bfbaafa0583e5b7c4bf5de186b59c8fa6307e689cb719c63eeb5f1" }, "downloads": -1, "filename": "pyrobuf-0.8.2.tar.gz", "has_sig": false, "md5_digest": "8576ec0ae400059fb0f1d634ef7d34ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 233663, "upload_time": "2018-09-17T17:38:33", "url": "https://files.pythonhosted.org/packages/6e/31/8b25cd2bfd19cbb89f0907ae4a962f8def4495e24d2bb5e98a6b84024e8a/pyrobuf-0.8.2.tar.gz" } ], "0.8.3": [ { "comment_text": "", "digests": { "md5": "93fe7bfee6d7ee7033b976f4328983a9", "sha256": "0ba4f1116806daa172628a04a8b6a642adab689e8e133479e72149c3698f5346" }, "downloads": -1, "filename": "pyrobuf-0.8.3.tar.gz", "has_sig": false, "md5_digest": "93fe7bfee6d7ee7033b976f4328983a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 233660, "upload_time": "2018-10-05T15:18:05", "url": "https://files.pythonhosted.org/packages/9e/4d/4443611d7877d305ce86ab1007535c67cc147fd281102fe5b90428c688c8/pyrobuf-0.8.3.tar.gz" } ], "0.8.4": [ { "comment_text": "", "digests": { "md5": "74fadcc1312588a24b5cfc31e674b8dc", "sha256": "a58e70c88ec530b4c4a61a273fc614649750a162e873570d985c147b08a28cac" }, "downloads": -1, "filename": "pyrobuf-0.8.4.tar.gz", "has_sig": false, "md5_digest": "74fadcc1312588a24b5cfc31e674b8dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 233793, "upload_time": "2018-11-26T16:40:16", "url": "https://files.pythonhosted.org/packages/e2/fe/ffedc66d6afbb288edab8d2d097a1b1cbad65e7e3220eda1e8d533eed304/pyrobuf-0.8.4.tar.gz" } ], "0.8.5": [ { "comment_text": "", "digests": { "md5": "9ab12d7acbea89fbbd1da8c7f3fdd66a", "sha256": "fff4700f7496d9c87b1213a35f789a1a003e036e306b083448eaa96c53e21efd" }, "downloads": -1, "filename": "pyrobuf-0.8.5.tar.gz", "has_sig": false, "md5_digest": "9ab12d7acbea89fbbd1da8c7f3fdd66a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 247490, "upload_time": "2019-01-14T18:57:55", "url": "https://files.pythonhosted.org/packages/dd/be/29d15889751a8792b3534eabb9470f9a32bb636c187d830ed3305ec8e4a9/pyrobuf-0.8.5.tar.gz" } ], "0.8.6": [ { "comment_text": "", "digests": { "md5": "5be4c645dd472d1233363519fcbf8e55", "sha256": "3d033e4de65f224bcfc30d6fc9bce23979b822e9ed6628eea3982b9579e94af7" }, "downloads": -1, "filename": "pyrobuf-0.8.6.tar.gz", "has_sig": false, "md5_digest": "5be4c645dd472d1233363519fcbf8e55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 250378, "upload_time": "2019-02-27T01:34:52", "url": "https://files.pythonhosted.org/packages/7f/6e/bbb1a0115f12319401514c9ba577fd02c3c61436c0be039d17380d3454f4/pyrobuf-0.8.6.tar.gz" } ], "0.8.7": [ { "comment_text": "", "digests": { "md5": "347b13548c5b75e4c923940b9943342f", "sha256": "e324442445e4bb491f62b2cf3f51b08160fe18f0f8dfe2493a6dbd0c821c4d24" }, "downloads": -1, "filename": "pyrobuf-0.8.7.tar.gz", "has_sig": false, "md5_digest": "347b13548c5b75e4c923940b9943342f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 250486, "upload_time": "2019-03-25T14:25:41", "url": "https://files.pythonhosted.org/packages/83/ee/3a5d6aae568dba59215c15d1414d6cdbcfa4aabc25721548186e9a97cf9b/pyrobuf-0.8.7.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "5a61e5e78b889b71c46f0acf20275524", "sha256": "1a900c3f1b56d6e2141b2ea72e01f4ffec6836ec2d08d1d07a297612d6028534" }, "downloads": -1, "filename": "pyrobuf-0.9.0.tar.gz", "has_sig": false, "md5_digest": "5a61e5e78b889b71c46f0acf20275524", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 250965, "upload_time": "2019-03-25T14:32:52", "url": "https://files.pythonhosted.org/packages/7d/3b/8c0f75d5d17119efc3d01778d3cea27e6cbe64116cf72190e6fd855841a9/pyrobuf-0.9.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5a61e5e78b889b71c46f0acf20275524", "sha256": "1a900c3f1b56d6e2141b2ea72e01f4ffec6836ec2d08d1d07a297612d6028534" }, "downloads": -1, "filename": "pyrobuf-0.9.0.tar.gz", "has_sig": false, "md5_digest": "5a61e5e78b889b71c46f0acf20275524", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 250965, "upload_time": "2019-03-25T14:32:52", "url": "https://files.pythonhosted.org/packages/7d/3b/8c0f75d5d17119efc3d01778d3cea27e6cbe64116cf72190e6fd855841a9/pyrobuf-0.9.0.tar.gz" } ] }