python-rapidjson


Namepython-rapidjson JSON
Version 0.1.0 PyPI version JSON
download
home_pagehttps://github.com/python-rapidjson/python-rapidjson
SummaryPython wrapper around rapidjson
upload_time2017-08-16 15:34:20
maintainer
docs_urlNone
authorKen Robbins
requires_python
licenseMIT License
keywords json rapidjson
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI
coveralls test coverage No coveralls.
            ==================
 python-rapidjson
==================

Python wrapper around RapidJSON
===============================

RapidJSON_ is an extremely fast C++ JSON serialization library.

We do not support legacy Python versions, you will need to upgrade to Python 3
to use this library.

Latest version documentation is automatically rendered by `Read the Docs`__.

__ http://python-rapidjson.readthedocs.io/en/latest/

.. image:: https://travis-ci.org/python-rapidjson/python-rapidjson.svg?branch=master
   :target: https://travis-ci.org/python-rapidjson/python-rapidjson
   :alt: Build status

.. image:: https://readthedocs.org/projects/python-rapidjson/badge/?version=latest
   :target: http://python-rapidjson.readthedocs.io/en/latest/?badge=latest
   :alt: Documentation status


Getting Started
---------------

First install ``python-rapidjson``:

.. code-block:: bash

    $ pip install python-rapidjson

RapidJSON tries to be compatible with the standard library ``json`` module so
it should be a drop in replacement. Basic usage looks like this:

.. code-block:: python

    >>> import rapidjson
    >>> data = {'foo': 100, 'bar': 'baz'}
    >>> rapidjson.dumps(data)
    '{"bar":"baz","foo":100}'
    >>> rapidjson.loads('{"bar":"baz","foo":100}')
    {'bar': 'baz', 'foo': 100}

If you want to install the development version (maybe to contribute fixes or
enhancements) you may clone the repository:

.. code-block:: bash

    $ git clone --recursive https://github.com/python-rapidjson/python-rapidjson.git

.. note:: The ``--recursive`` option is needed because we use a *submodule* to
          include RapidJSON_ sources. Alternatively you can do a plain
          ``clone`` immediately followed by a ``git submodule update --init``.

          Alternatively, if you already have (a *compatible* version of)
          RapidJSON includes around, you can compile the module specifying
          their location with the option ``--rj-include-dir``, for example:

          .. code-block:: shell

             $ python3 setup.py build --rj-include-dir=/usr/include/rapidjson


Performance
-----------

``python-rapidjson`` tries to be as performant as possible while staying
compatible with the ``json`` module.

The following tables show a comparison between this module and other libraries
with different data sets.  Last row (“overall”) is the total time taken by all
the benchmarks.

Each number show the factor between the time taken by each contender and
``python-rapidjson`` (in other words, they are *normalized* against a value of
1.0 for ``python-rapidjson``): the lower the number, the speedier the
contender.

In **bold** the winner.

Serialization
~~~~~~~~~~~~~

+-----------------------+-----------------+-----------------+-----------------+-----------------+-----------------+
|       serialize       |   native [1]_   |   ujson [2]_    | simplejson [3]_ |   stdlib [4]_   |    yajl [5]_    |
+=======================+=================+=================+=================+=================+=================+
|    100 arrays dict    |    **0.67**     |      1.31       |      6.28       |      2.88       |      1.74       |
+-----------------------+-----------------+-----------------+-----------------+-----------------+-----------------+
|    100 dicts array    |    **0.79**     |      1.19       |      7.16       |      2.92       |      1.69       |
+-----------------------+-----------------+-----------------+-----------------+-----------------+-----------------+
|  **256 Trues array**  |      1.19       |      1.41       |      3.02       |      2.19       |      1.20       |
+-----------------------+-----------------+-----------------+-----------------+-----------------+-----------------+
|    256 ascii array    |      1.02       |    **0.92**     |      1.90       |      1.77       |      2.05       |
+-----------------------+-----------------+-----------------+-----------------+-----------------+-----------------+
| **256 doubles array** |      1.06       |      7.55       |      8.30       |      7.65       |      4.39       |
+-----------------------+-----------------+-----------------+-----------------+-----------------+-----------------+
|   256 unicode array   |      0.87       |      0.72       |      0.82       |      0.88       |    **0.53**     |
+-----------------------+-----------------+-----------------+-----------------+-----------------+-----------------+
|    complex object     |    **0.82**     |      1.41       |      5.17       |      3.39       |      2.87       |
+-----------------------+-----------------+-----------------+-----------------+-----------------+-----------------+
|   composite object    |    **0.68**     |      0.93       |      3.01       |      1.92       |      1.85       |
+-----------------------+-----------------+-----------------+-----------------+-----------------+-----------------+
|        overall        |    **0.67**     |      1.30       |      6.27       |      2.88       |      1.74       |
+-----------------------+-----------------+-----------------+-----------------+-----------------+-----------------+

.. [1] rapidjson with ``number_mode=NM_NATIVE``
.. [2] `ujson 1.35 <https://pypi.python.org/pypi/ujson/1.35>`__
.. [3] `simplejson 3.11.1 <https://pypi.python.org/pypi/simplejson/3.11.1>`__
.. [4] Python 3.6 standard library
.. [5] `yajl 0.3.5 <https://pypi.python.org/pypi/yajl/0.3.5>`__


Deserialization
~~~~~~~~~~~~~~~

+-----------------------+------------+------------+------------+------------+------------+
|      deserialize      |   native   |   ujson    | simplejson |   stdlib   |    yajl    |
+=======================+============+============+============+============+============+
|    100 arrays dict    |  **0.90**  |    0.97    |    1.48    |    1.25    |    1.20    |
+-----------------------+------------+------------+------------+------------+------------+
|    100 dicts array    |  **0.88**  |    0.96    |    1.99    |    1.58    |    1.34    |
+-----------------------+------------+------------+------------+------------+------------+
|  **256 Trues array**  |    1.22    |    1.31    |    2.08    |    1.93    |    2.08    |
+-----------------------+------------+------------+------------+------------+------------+
|  **256 ascii array**  |    1.05    |    1.37    |    1.14    |    1.25    |    1.56    |
+-----------------------+------------+------------+------------+------------+------------+
|   256 doubles array   |  **0.16**  |    0.33    |    0.72    |    0.70    |    0.47    |
+-----------------------+------------+------------+------------+------------+------------+
|   256 unicode array   |    0.89    |  **0.79**  |    4.12    |    4.50    |    1.90    |
+-----------------------+------------+------------+------------+------------+------------+
|    complex object     |  **0.72**  |    0.88    |    1.36    |    1.28    |    1.24    |
+-----------------------+------------+------------+------------+------------+------------+
|   composite object    |  **0.83**  |    0.85    |    1.94    |    1.43    |    1.26    |
+-----------------------+------------+------------+------------+------------+------------+
|        overall        |  **0.90**  |    0.97    |    1.49    |    1.25    |    1.20    |
+-----------------------+------------+------------+------------+------------+------------+


DIY
~~~

To run these tests yourself, clone the repo and run:

.. code-block:: bash

   $ tox -e py36 -- -m benchmark --compare-other-engines

Without the option ``--compare-other-engines`` it will focus only on
``RapidJSON``.  This is particularly handy coupled with the `compare past
runs`__ functionality of ``pytest-benchmark``:

.. code-block:: bash

   $ tox -e py36 -- -m benchmark --benchmark-autosave
   # hack, hack, hack!
   $ tox -e py36 -- -m benchmark --benchmark-compare=0001

   ----------------------- benchmark 'deserialize': 18 tests ------------------------
   Name (time in us)                                                            Min…
   ----------------------------------------------------------------------------------
   test_loads[rapidjson-256 Trues array] (NOW)                         5.2320 (1.0)…
   test_loads[rapidjson-256 Trues array] (0001)                        5.4180 (1.04)…
   …

To reproduce the tables above, use the option ``--benchmark-json`` so that the
the results are written in the specified filename the run the
``benchmark-tables.py`` script giving that filename as the only argument:

.. code-block:: bash

   $ tox -e py36 -- -m benchmark --compare-other-engines --benchmark-json=comparison.json
   $ python3 benchmark-tables.py comparison.json


__ http://pytest-benchmark.readthedocs.org/en/latest/comparing.html


Incompatibility
---------------

Here are things in the standard ``json`` library supports that we have decided
not to support:

* ``separators`` argument. This is mostly used for pretty printing and not
  supported by ``RapidJSON`` so it isn't a high priority. We do support
  ``indent`` kwarg that would get you nice looking JSON anyways.

* Coercing keys when dumping. ``json`` will turn ``True`` into ``'True'`` if
  you dump it out but when you load it back in it'll still be a string. We
  want the dump and load to return the exact same objects so we have decided
  not to do this coercing.

.. _RapidJSON: https://github.com/miloyip/rapidjson


Changes
-------

0.1.0 (2017-08-16)
~~~~~~~~~~~~~~~~~~

* Remove beta status


0.1.0b4 (2017-08-14)
~~~~~~~~~~~~~~~~~~~~

* Make execution of the test suite on Appveyor actually happen


0.1.0b3 (2017-08-12)
~~~~~~~~~~~~~~~~~~~~

* Exclude CI configurations from the source distribution


0.1.0b2 (2017-08-12)
~~~~~~~~~~~~~~~~~~~~

* Fix Powershell wheel upload script in appveyor configuration


0.1.0b1 (2017-08-12)
~~~~~~~~~~~~~~~~~~~~

* Compilable with somewhat old g++ (`issue #69`__)

  __ https://github.com/python-rapidjson/python-rapidjson/issues/69

* **Backward incompatibilities**:

  - all ``DATETIME_MODE_XXX`` constants have been shortened to ``DM_XXX``
    ``DATETIME_MODE_ISO8601_UTC`` has been renamed to ``DM_SHIFT_TO_UTC``

  - all ``UUID_MODE_XXX`` constants have been shortened to ``UM_XXX``

* New option ``DM_UNIX_TIME`` to serialize date, datetime and time values as
  `UNIX timestamps`__ targeting `issue #61`__

  __ https://en.wikipedia.org/wiki/Unix_time
  __ https://github.com/python-rapidjson/python-rapidjson/issues/61

* New option ``DM_NAIVE_IS_UTC`` to treat naïve datetime and time values as if
  they were in the UTC timezone (also for issue #61)

* New keyword argument ``number_mode`` to use underlying C library numbers

* Binary wheels for GNU/Linux and Windows on PyPI (one would hope: this is the
  reason for the beta1 release)


0.0.11 (2017-03-05)
~~~~~~~~~~~~~~~~~~~

* Fix a couple of refcount handling glitches, hopefully targeting `issue
  #48`__.

  __ https://github.com/python-rapidjson/python-rapidjson/issues/48


0.0.10 (2017-03-02)
~~~~~~~~~~~~~~~~~~~

* Fix source distribution to contain all required stuff (`PR #64`__)

  __ https://github.com/python-rapidjson/python-rapidjson/pull/64


0.0.9 (2017-03-02)
~~~~~~~~~~~~~~~~~~

* CI testing on GitHub

* Allow using locally installed RapidJSON library (`issue #60`__)

  __ https://github.com/python-rapidjson/python-rapidjson/issues/60

* Bug fixes (`issue #37`__, `issue #51`__, `issue #57`__)

  __ https://github.com/python-rapidjson/python-rapidjson/issues/37
  __ https://github.com/python-rapidjson/python-rapidjson/issues/51
  __ https://github.com/python-rapidjson/python-rapidjson/issues/57


0.0.8 (2016-12-09)
~~~~~~~~~~~~~~~~~~

* Use unpatched RapidJSON 1.1 (`PR #46`__)

  __ https://github.com/python-rapidjson/python-rapidjson/pull/46

* Handle serialization and deserialization of datetime, date and time
  instances (`PR #35`__) and of UUID instances (`PR #40`__)

  __ https://github.com/python-rapidjson/python-rapidjson/pull/35
  __ https://github.com/python-rapidjson/python-rapidjson/pull/40

* Sphinx based documentation (`PR #44`__)

  __ https://github.com/python-rapidjson/python-rapidjson/pull/44

* Refresh benchmarks (`PR #45`__)

  __ https://github.com/python-rapidjson/python-rapidjson/pull/45

* Bug fixes (`issue #25`__, `issue #38`__, `PR #43`__)

  __ https://github.com/python-rapidjson/python-rapidjson/issues/25
  __ https://github.com/python-rapidjson/python-rapidjson/issues/38
  __ https://github.com/python-rapidjson/python-rapidjson/pull/43

            

Raw data

            {
    "maintainer": "", 
    "docs_url": null, 
    "requires_python": "", 
    "maintainer_email": "", 
    "cheesecake_code_kwalitee_id": null, 
    "keywords": "json rapidjson", 
    "upload_time": "2017-08-16 15:34:20", 
    "author": "Ken Robbins", 
    "home_page": "https://github.com/python-rapidjson/python-rapidjson", 
    "github_user": "python-rapidjson", 
    "appveyor": true, 
    "download_url": "https://pypi.python.org/packages/af/6c/9bf450350e11f667b869d89c85ec3baedff388763da2c8f136fe45b192df/python-rapidjson-0.1.0.tar.gz", 
    "platform": "", 
    "version": "0.1.0", 
    "cheesecake_documentation_id": null, 
    "description": "==================\n python-rapidjson\n==================\n\nPython wrapper around RapidJSON\n===============================\n\nRapidJSON_ is an extremely fast C++ JSON serialization library.\n\nWe do not support legacy Python versions, you will need to upgrade to Python 3\nto use this library.\n\nLatest version documentation is automatically rendered by `Read the Docs`__.\n\n__ http://python-rapidjson.readthedocs.io/en/latest/\n\n.. image:: https://travis-ci.org/python-rapidjson/python-rapidjson.svg?branch=master\n   :target: https://travis-ci.org/python-rapidjson/python-rapidjson\n   :alt: Build status\n\n.. image:: https://readthedocs.org/projects/python-rapidjson/badge/?version=latest\n   :target: http://python-rapidjson.readthedocs.io/en/latest/?badge=latest\n   :alt: Documentation status\n\n\nGetting Started\n---------------\n\nFirst install ``python-rapidjson``:\n\n.. code-block:: bash\n\n    $ pip install python-rapidjson\n\nRapidJSON tries to be compatible with the standard library ``json`` module so\nit should be a drop in replacement. Basic usage looks like this:\n\n.. code-block:: python\n\n    >>> import rapidjson\n    >>> data = {'foo': 100, 'bar': 'baz'}\n    >>> rapidjson.dumps(data)\n    '{\"bar\":\"baz\",\"foo\":100}'\n    >>> rapidjson.loads('{\"bar\":\"baz\",\"foo\":100}')\n    {'bar': 'baz', 'foo': 100}\n\nIf you want to install the development version (maybe to contribute fixes or\nenhancements) you may clone the repository:\n\n.. code-block:: bash\n\n    $ git clone --recursive https://github.com/python-rapidjson/python-rapidjson.git\n\n.. note:: The ``--recursive`` option is needed because we use a *submodule* to\n          include RapidJSON_ sources. Alternatively you can do a plain\n          ``clone`` immediately followed by a ``git submodule update --init``.\n\n          Alternatively, if you already have (a *compatible* version of)\n          RapidJSON includes around, you can compile the module specifying\n          their location with the option ``--rj-include-dir``, for example:\n\n          .. code-block:: shell\n\n             $ python3 setup.py build --rj-include-dir=/usr/include/rapidjson\n\n\nPerformance\n-----------\n\n``python-rapidjson`` tries to be as performant as possible while staying\ncompatible with the ``json`` module.\n\nThe following tables show a comparison between this module and other libraries\nwith different data sets.  Last row (\u201coverall\u201d) is the total time taken by all\nthe benchmarks.\n\nEach number show the factor between the time taken by each contender and\n``python-rapidjson`` (in other words, they are *normalized* against a value of\n1.0 for ``python-rapidjson``): the lower the number, the speedier the\ncontender.\n\nIn **bold** the winner.\n\nSerialization\n~~~~~~~~~~~~~\n\n+-----------------------+-----------------+-----------------+-----------------+-----------------+-----------------+\n|       serialize       |   native [1]_   |   ujson [2]_    | simplejson [3]_ |   stdlib [4]_   |    yajl [5]_    |\n+=======================+=================+=================+=================+=================+=================+\n|    100 arrays dict    |    **0.67**     |      1.31       |      6.28       |      2.88       |      1.74       |\n+-----------------------+-----------------+-----------------+-----------------+-----------------+-----------------+\n|    100 dicts array    |    **0.79**     |      1.19       |      7.16       |      2.92       |      1.69       |\n+-----------------------+-----------------+-----------------+-----------------+-----------------+-----------------+\n|  **256 Trues array**  |      1.19       |      1.41       |      3.02       |      2.19       |      1.20       |\n+-----------------------+-----------------+-----------------+-----------------+-----------------+-----------------+\n|    256 ascii array    |      1.02       |    **0.92**     |      1.90       |      1.77       |      2.05       |\n+-----------------------+-----------------+-----------------+-----------------+-----------------+-----------------+\n| **256 doubles array** |      1.06       |      7.55       |      8.30       |      7.65       |      4.39       |\n+-----------------------+-----------------+-----------------+-----------------+-----------------+-----------------+\n|   256 unicode array   |      0.87       |      0.72       |      0.82       |      0.88       |    **0.53**     |\n+-----------------------+-----------------+-----------------+-----------------+-----------------+-----------------+\n|    complex object     |    **0.82**     |      1.41       |      5.17       |      3.39       |      2.87       |\n+-----------------------+-----------------+-----------------+-----------------+-----------------+-----------------+\n|   composite object    |    **0.68**     |      0.93       |      3.01       |      1.92       |      1.85       |\n+-----------------------+-----------------+-----------------+-----------------+-----------------+-----------------+\n|        overall        |    **0.67**     |      1.30       |      6.27       |      2.88       |      1.74       |\n+-----------------------+-----------------+-----------------+-----------------+-----------------+-----------------+\n\n.. [1] rapidjson with ``number_mode=NM_NATIVE``\n.. [2] `ujson 1.35 <https://pypi.python.org/pypi/ujson/1.35>`__\n.. [3] `simplejson 3.11.1 <https://pypi.python.org/pypi/simplejson/3.11.1>`__\n.. [4] Python 3.6 standard library\n.. [5] `yajl 0.3.5 <https://pypi.python.org/pypi/yajl/0.3.5>`__\n\n\nDeserialization\n~~~~~~~~~~~~~~~\n\n+-----------------------+------------+------------+------------+------------+------------+\n|      deserialize      |   native   |   ujson    | simplejson |   stdlib   |    yajl    |\n+=======================+============+============+============+============+============+\n|    100 arrays dict    |  **0.90**  |    0.97    |    1.48    |    1.25    |    1.20    |\n+-----------------------+------------+------------+------------+------------+------------+\n|    100 dicts array    |  **0.88**  |    0.96    |    1.99    |    1.58    |    1.34    |\n+-----------------------+------------+------------+------------+------------+------------+\n|  **256 Trues array**  |    1.22    |    1.31    |    2.08    |    1.93    |    2.08    |\n+-----------------------+------------+------------+------------+------------+------------+\n|  **256 ascii array**  |    1.05    |    1.37    |    1.14    |    1.25    |    1.56    |\n+-----------------------+------------+------------+------------+------------+------------+\n|   256 doubles array   |  **0.16**  |    0.33    |    0.72    |    0.70    |    0.47    |\n+-----------------------+------------+------------+------------+------------+------------+\n|   256 unicode array   |    0.89    |  **0.79**  |    4.12    |    4.50    |    1.90    |\n+-----------------------+------------+------------+------------+------------+------------+\n|    complex object     |  **0.72**  |    0.88    |    1.36    |    1.28    |    1.24    |\n+-----------------------+------------+------------+------------+------------+------------+\n|   composite object    |  **0.83**  |    0.85    |    1.94    |    1.43    |    1.26    |\n+-----------------------+------------+------------+------------+------------+------------+\n|        overall        |  **0.90**  |    0.97    |    1.49    |    1.25    |    1.20    |\n+-----------------------+------------+------------+------------+------------+------------+\n\n\nDIY\n~~~\n\nTo run these tests yourself, clone the repo and run:\n\n.. code-block:: bash\n\n   $ tox -e py36 -- -m benchmark --compare-other-engines\n\nWithout the option ``--compare-other-engines`` it will focus only on\n``RapidJSON``.  This is particularly handy coupled with the `compare past\nruns`__ functionality of ``pytest-benchmark``:\n\n.. code-block:: bash\n\n   $ tox -e py36 -- -m benchmark --benchmark-autosave\n   # hack, hack, hack!\n   $ tox -e py36 -- -m benchmark --benchmark-compare=0001\n\n   ----------------------- benchmark 'deserialize': 18 tests ------------------------\n   Name (time in us)                                                            Min\u2026\n   ----------------------------------------------------------------------------------\n   test_loads[rapidjson-256 Trues array] (NOW)                         5.2320 (1.0)\u2026\n   test_loads[rapidjson-256 Trues array] (0001)                        5.4180 (1.04)\u2026\n   \u2026\n\nTo reproduce the tables above, use the option ``--benchmark-json`` so that the\nthe results are written in the specified filename the run the\n``benchmark-tables.py`` script giving that filename as the only argument:\n\n.. code-block:: bash\n\n   $ tox -e py36 -- -m benchmark --compare-other-engines --benchmark-json=comparison.json\n   $ python3 benchmark-tables.py comparison.json\n\n\n__ http://pytest-benchmark.readthedocs.org/en/latest/comparing.html\n\n\nIncompatibility\n---------------\n\nHere are things in the standard ``json`` library supports that we have decided\nnot to support:\n\n* ``separators`` argument. This is mostly used for pretty printing and not\n  supported by ``RapidJSON`` so it isn't a high priority. We do support\n  ``indent`` kwarg that would get you nice looking JSON anyways.\n\n* Coercing keys when dumping. ``json`` will turn ``True`` into ``'True'`` if\n  you dump it out but when you load it back in it'll still be a string. We\n  want the dump and load to return the exact same objects so we have decided\n  not to do this coercing.\n\n.. _RapidJSON: https://github.com/miloyip/rapidjson\n\n\nChanges\n-------\n\n0.1.0 (2017-08-16)\n~~~~~~~~~~~~~~~~~~\n\n* Remove beta status\n\n\n0.1.0b4 (2017-08-14)\n~~~~~~~~~~~~~~~~~~~~\n\n* Make execution of the test suite on Appveyor actually happen\n\n\n0.1.0b3 (2017-08-12)\n~~~~~~~~~~~~~~~~~~~~\n\n* Exclude CI configurations from the source distribution\n\n\n0.1.0b2 (2017-08-12)\n~~~~~~~~~~~~~~~~~~~~\n\n* Fix Powershell wheel upload script in appveyor configuration\n\n\n0.1.0b1 (2017-08-12)\n~~~~~~~~~~~~~~~~~~~~\n\n* Compilable with somewhat old g++ (`issue #69`__)\n\n  __ https://github.com/python-rapidjson/python-rapidjson/issues/69\n\n* **Backward incompatibilities**:\n\n  - all ``DATETIME_MODE_XXX`` constants have been shortened to ``DM_XXX``\n    ``DATETIME_MODE_ISO8601_UTC`` has been renamed to ``DM_SHIFT_TO_UTC``\n\n  - all ``UUID_MODE_XXX`` constants have been shortened to ``UM_XXX``\n\n* New option ``DM_UNIX_TIME`` to serialize date, datetime and time values as\n  `UNIX timestamps`__ targeting `issue #61`__\n\n  __ https://en.wikipedia.org/wiki/Unix_time\n  __ https://github.com/python-rapidjson/python-rapidjson/issues/61\n\n* New option ``DM_NAIVE_IS_UTC`` to treat na\u00efve datetime and time values as if\n  they were in the UTC timezone (also for issue #61)\n\n* New keyword argument ``number_mode`` to use underlying C library numbers\n\n* Binary wheels for GNU/Linux and Windows on PyPI (one would hope: this is the\n  reason for the beta1 release)\n\n\n0.0.11 (2017-03-05)\n~~~~~~~~~~~~~~~~~~~\n\n* Fix a couple of refcount handling glitches, hopefully targeting `issue\n  #48`__.\n\n  __ https://github.com/python-rapidjson/python-rapidjson/issues/48\n\n\n0.0.10 (2017-03-02)\n~~~~~~~~~~~~~~~~~~~\n\n* Fix source distribution to contain all required stuff (`PR #64`__)\n\n  __ https://github.com/python-rapidjson/python-rapidjson/pull/64\n\n\n0.0.9 (2017-03-02)\n~~~~~~~~~~~~~~~~~~\n\n* CI testing on GitHub\n\n* Allow using locally installed RapidJSON library (`issue #60`__)\n\n  __ https://github.com/python-rapidjson/python-rapidjson/issues/60\n\n* Bug fixes (`issue #37`__, `issue #51`__, `issue #57`__)\n\n  __ https://github.com/python-rapidjson/python-rapidjson/issues/37\n  __ https://github.com/python-rapidjson/python-rapidjson/issues/51\n  __ https://github.com/python-rapidjson/python-rapidjson/issues/57\n\n\n0.0.8 (2016-12-09)\n~~~~~~~~~~~~~~~~~~\n\n* Use unpatched RapidJSON 1.1 (`PR #46`__)\n\n  __ https://github.com/python-rapidjson/python-rapidjson/pull/46\n\n* Handle serialization and deserialization of datetime, date and time\n  instances (`PR #35`__) and of UUID instances (`PR #40`__)\n\n  __ https://github.com/python-rapidjson/python-rapidjson/pull/35\n  __ https://github.com/python-rapidjson/python-rapidjson/pull/40\n\n* Sphinx based documentation (`PR #44`__)\n\n  __ https://github.com/python-rapidjson/python-rapidjson/pull/44\n\n* Refresh benchmarks (`PR #45`__)\n\n  __ https://github.com/python-rapidjson/python-rapidjson/pull/45\n\n* Bug fixes (`issue #25`__, `issue #38`__, `PR #43`__)\n\n  __ https://github.com/python-rapidjson/python-rapidjson/issues/25\n  __ https://github.com/python-rapidjson/python-rapidjson/issues/38\n  __ https://github.com/python-rapidjson/python-rapidjson/pull/43\n", 
    "tox": true, 
    "lcname": "python-rapidjson", 
    "bugtrack_url": null, 
    "github": true, 
    "coveralls": false, 
    "name": "python-rapidjson", 
    "license": "MIT License", 
    "travis_ci": true, 
    "github_project": "python-rapidjson", 
    "summary": "Python wrapper around rapidjson", 
    "split_keywords": [
        "json", 
        "rapidjson"
    ], 
    "author_email": "ken@kenrobbins.com", 
    "urls": [
        {
            "has_sig": false, 
            "upload_time": "2017-08-16T15:34:20", 
            "comment_text": "", 
            "python_version": "source", 
            "url": "https://pypi.python.org/packages/af/6c/9bf450350e11f667b869d89c85ec3baedff388763da2c8f136fe45b192df/python-rapidjson-0.1.0.tar.gz", 
            "md5_digest": "38a61bce48b73465f8669b8d3eda821e", 
            "downloads": 0, 
            "filename": "python-rapidjson-0.1.0.tar.gz", 
            "packagetype": "sdist", 
            "path": "af/6c/9bf450350e11f667b869d89c85ec3baedff388763da2c8f136fe45b192df/python-rapidjson-0.1.0.tar.gz", 
            "size": 161961
        }, 
        {
            "has_sig": false, 
            "upload_time": "2017-08-16T15:40:53", 
            "comment_text": "", 
            "python_version": "cp34", 
            "url": "https://pypi.python.org/packages/3d/48/5c8fd83a4a539ac1c034d237d834443d07fe65ebf760df5e38a8f4e2c201/python_rapidjson-0.1.0-cp34-cp34m-manylinux1_i686.whl", 
            "md5_digest": "0dd23c77da4e2f993d5501de7cb6daf9", 
            "downloads": 0, 
            "filename": "python_rapidjson-0.1.0-cp34-cp34m-manylinux1_i686.whl", 
            "packagetype": "bdist_wheel", 
            "path": "3d/48/5c8fd83a4a539ac1c034d237d834443d07fe65ebf760df5e38a8f4e2c201/python_rapidjson-0.1.0-cp34-cp34m-manylinux1_i686.whl", 
            "size": 309616
        }, 
        {
            "has_sig": false, 
            "upload_time": "2017-08-16T15:40:55", 
            "comment_text": "", 
            "python_version": "cp34", 
            "url": "https://pypi.python.org/packages/bd/25/3802c9a7c2ed11662086a659d0e34c8d0ff50dab392514027d759e7f9070/python_rapidjson-0.1.0-cp34-cp34m-manylinux1_x86_64.whl", 
            "md5_digest": "cb38e6ccdff135c9a0a526c1ed7be809", 
            "downloads": 0, 
            "filename": "python_rapidjson-0.1.0-cp34-cp34m-manylinux1_x86_64.whl", 
            "packagetype": "bdist_wheel", 
            "path": "bd/25/3802c9a7c2ed11662086a659d0e34c8d0ff50dab392514027d759e7f9070/python_rapidjson-0.1.0-cp34-cp34m-manylinux1_x86_64.whl", 
            "size": 318771
        }, 
        {
            "has_sig": false, 
            "upload_time": "2017-08-16T15:43:59", 
            "comment_text": "", 
            "python_version": "cp34", 
            "url": "https://pypi.python.org/packages/71/be/8404b0e18931b77e12df28f5b81b22a8e4d5d3f6c4752911f3c744b01dc1/python_rapidjson-0.1.0-cp34-cp34m-win32.whl", 
            "md5_digest": "772ccc05f29b993effe7063a877ccf08", 
            "downloads": 0, 
            "filename": "python_rapidjson-0.1.0-cp34-cp34m-win32.whl", 
            "packagetype": "bdist_wheel", 
            "path": "71/be/8404b0e18931b77e12df28f5b81b22a8e4d5d3f6c4752911f3c744b01dc1/python_rapidjson-0.1.0-cp34-cp34m-win32.whl", 
            "size": 44665
        }, 
        {
            "has_sig": false, 
            "upload_time": "2017-08-16T15:44:01", 
            "comment_text": "", 
            "python_version": "cp34", 
            "url": "https://pypi.python.org/packages/96/b1/fd3dd67c92f0daeaf678fcdb27934edf3a2eb46b31e1c853203dbec9e04d/python_rapidjson-0.1.0-cp34-cp34m-win_amd64.whl", 
            "md5_digest": "c42a107336e5badb6cb34a60e5841a14", 
            "downloads": 0, 
            "filename": "python_rapidjson-0.1.0-cp34-cp34m-win_amd64.whl", 
            "packagetype": "bdist_wheel", 
            "path": "96/b1/fd3dd67c92f0daeaf678fcdb27934edf3a2eb46b31e1c853203dbec9e04d/python_rapidjson-0.1.0-cp34-cp34m-win_amd64.whl", 
            "size": 44743
        }, 
        {
            "has_sig": false, 
            "upload_time": "2017-08-16T15:40:57", 
            "comment_text": "", 
            "python_version": "cp35", 
            "url": "https://pypi.python.org/packages/b6/8f/43260fc9b32016d188c00be1108ab595720a97051909cd01f09596786264/python_rapidjson-0.1.0-cp35-cp35m-manylinux1_i686.whl", 
            "md5_digest": "a3237c06cfcc031f04240639988e479b", 
            "downloads": 0, 
            "filename": "python_rapidjson-0.1.0-cp35-cp35m-manylinux1_i686.whl", 
            "packagetype": "bdist_wheel", 
            "path": "b6/8f/43260fc9b32016d188c00be1108ab595720a97051909cd01f09596786264/python_rapidjson-0.1.0-cp35-cp35m-manylinux1_i686.whl", 
            "size": 309788
        }, 
        {
            "has_sig": false, 
            "upload_time": "2017-08-16T15:41:00", 
            "comment_text": "", 
            "python_version": "cp35", 
            "url": "https://pypi.python.org/packages/c3/3f/32f395b3bba2f2658ec74ec5219ac8374874da253fc2f84d4a7d17899255/python_rapidjson-0.1.0-cp35-cp35m-manylinux1_x86_64.whl", 
            "md5_digest": "6d2d12593689fdf3c0c1f25688b20dc4", 
            "downloads": 0, 
            "filename": "python_rapidjson-0.1.0-cp35-cp35m-manylinux1_x86_64.whl", 
            "packagetype": "bdist_wheel", 
            "path": "c3/3f/32f395b3bba2f2658ec74ec5219ac8374874da253fc2f84d4a7d17899255/python_rapidjson-0.1.0-cp35-cp35m-manylinux1_x86_64.whl", 
            "size": 318951
        }, 
        {
            "has_sig": false, 
            "upload_time": "2017-08-16T15:44:02", 
            "comment_text": "", 
            "python_version": "cp35", 
            "url": "https://pypi.python.org/packages/62/28/5a58000b9817af23e348555ca87f1a39fb9a3df0a2bccffa962c58dfb63f/python_rapidjson-0.1.0-cp35-cp35m-win32.whl", 
            "md5_digest": "db7b0b23b551de113df6fddf3724145c", 
            "downloads": 0, 
            "filename": "python_rapidjson-0.1.0-cp35-cp35m-win32.whl", 
            "packagetype": "bdist_wheel", 
            "path": "62/28/5a58000b9817af23e348555ca87f1a39fb9a3df0a2bccffa962c58dfb63f/python_rapidjson-0.1.0-cp35-cp35m-win32.whl", 
            "size": 46088
        }, 
        {
            "has_sig": false, 
            "upload_time": "2017-08-16T15:44:04", 
            "comment_text": "", 
            "python_version": "cp35", 
            "url": "https://pypi.python.org/packages/8b/85/e62dd17a0381d4e2414eb11bc7dc04c70dec667f91bb545b4c0d7af9f9b3/python_rapidjson-0.1.0-cp35-cp35m-win_amd64.whl", 
            "md5_digest": "d9854b9be77bc29c395dd96312a15e70", 
            "downloads": 0, 
            "filename": "python_rapidjson-0.1.0-cp35-cp35m-win_amd64.whl", 
            "packagetype": "bdist_wheel", 
            "path": "8b/85/e62dd17a0381d4e2414eb11bc7dc04c70dec667f91bb545b4c0d7af9f9b3/python_rapidjson-0.1.0-cp35-cp35m-win_amd64.whl", 
            "size": 48887
        }, 
        {
            "has_sig": false, 
            "upload_time": "2017-08-16T15:41:03", 
            "comment_text": "", 
            "python_version": "cp36", 
            "url": "https://pypi.python.org/packages/a6/d4/35591d702206906c2644c4f66ff388d4f66b7b678fde95db2c7880cb3786/python_rapidjson-0.1.0-cp36-cp36m-manylinux1_i686.whl", 
            "md5_digest": "9af2c1078ea7c63ac1fe83ba2b8c9c12", 
            "downloads": 0, 
            "filename": "python_rapidjson-0.1.0-cp36-cp36m-manylinux1_i686.whl", 
            "packagetype": "bdist_wheel", 
            "path": "a6/d4/35591d702206906c2644c4f66ff388d4f66b7b678fde95db2c7880cb3786/python_rapidjson-0.1.0-cp36-cp36m-manylinux1_i686.whl", 
            "size": 309959
        }, 
        {
            "has_sig": false, 
            "upload_time": "2017-08-16T15:41:05", 
            "comment_text": "", 
            "python_version": "cp36", 
            "url": "https://pypi.python.org/packages/e4/13/7b3a30a6f1feddcb698a4e9580b71ff878ca3997c0bdea7c1810a49f9372/python_rapidjson-0.1.0-cp36-cp36m-manylinux1_x86_64.whl", 
            "md5_digest": "d4289f5037dfc6f44151a98060cdb701", 
            "downloads": 0, 
            "filename": "python_rapidjson-0.1.0-cp36-cp36m-manylinux1_x86_64.whl", 
            "packagetype": "bdist_wheel", 
            "path": "e4/13/7b3a30a6f1feddcb698a4e9580b71ff878ca3997c0bdea7c1810a49f9372/python_rapidjson-0.1.0-cp36-cp36m-manylinux1_x86_64.whl", 
            "size": 319073
        }, 
        {
            "has_sig": false, 
            "upload_time": "2017-08-16T15:44:05", 
            "comment_text": "", 
            "python_version": "cp36", 
            "url": "https://pypi.python.org/packages/3b/a6/bdd406e53d803d90cf758094e8403b646184cbe9e1bb3963153f26420b81/python_rapidjson-0.1.0-cp36-cp36m-win32.whl", 
            "md5_digest": "5d59d6cf9854fc1bcc55053a493b5dcc", 
            "downloads": 0, 
            "filename": "python_rapidjson-0.1.0-cp36-cp36m-win32.whl", 
            "packagetype": "bdist_wheel", 
            "path": "3b/a6/bdd406e53d803d90cf758094e8403b646184cbe9e1bb3963153f26420b81/python_rapidjson-0.1.0-cp36-cp36m-win32.whl", 
            "size": 46084
        }, 
        {
            "has_sig": false, 
            "upload_time": "2017-08-16T15:44:07", 
            "comment_text": "", 
            "python_version": "cp36", 
            "url": "https://pypi.python.org/packages/64/38/ddf4a3fe1565bf8d566f303745f55d958877c3c0dabce707d32adca3ab1e/python_rapidjson-0.1.0-cp36-cp36m-win_amd64.whl", 
            "md5_digest": "b1aa42bd8d9cfb022e234b9368c0d1e2", 
            "downloads": 0, 
            "filename": "python_rapidjson-0.1.0-cp36-cp36m-win_amd64.whl", 
            "packagetype": "bdist_wheel", 
            "path": "64/38/ddf4a3fe1565bf8d566f303745f55d958877c3c0dabce707d32adca3ab1e/python_rapidjson-0.1.0-cp36-cp36m-win_amd64.whl", 
            "size": 48892
        }
    ], 
    "_id": null, 
    "cheesecake_installability_id": null
}