mirror of
https://github.com/ultrajson/ultrajson.git
synced 2024-11-24 05:12:02 +01:00
Ultra fast JSON decoder and encoder written in C with Python bindings
lib | ||
python | ||
tests | ||
LICENSE.txt | ||
MANIFEST.in | ||
README.rst | ||
setup.py |
UltraJSON ============= UltraJSON is an ultra fast JSON encoder and decoder written in pure C with bindings for Python 2.5+ and 3. To install it just run Pip as usual:: $ pip install ujson ============ Usage ============ May be used as a drop in replacement for most other JSON parsers for Python:: >>> import ujson >>> ujson.dumps([{"key": "value"}, 81, True]) '[{"key":"value"},81,true]' >>> ujson.loads("""[{"key": "value"}, 81, true]""") [{u'key': u'value'}, 81, True] ============ Benchmarks ============ *UltraJSON* calls/sec compared to three other popular JSON parsers with performance gain specified below each. ~~~~~~~~~~~~~ Test machine: ~~~~~~~~~~~~~ Linux version 2.6.32-131.0.15.el6.x86_64 ~~~~~~~~~ Versions: ~~~~~~~~~ - ujson: 1.21 - simplejson: 2.6.2 - cjson: 1.05 - yajl: 0.3.5 - Python: Python 2.6.6 (r266:84292, Jul 20 2011, 10:22:43) +-----------------------------------------+--------+------------+--------+---------+ | | ujson | simplejson | cjson | yajl | +=========================================+========+============+========+=========+ | Array with 256 utf-8 strings | | | | | +-----------------------------------------+--------+------------+--------+---------+ | Encode | 4090,74| 899,39 |83,86 | 3189,86 | +-----------------------------------------+--------+------------+--------+---------+ | | | 4,55 |48,78 | 1,28 | +-----------------------------------------+--------+------------+--------+---------+ | Decode | 863,29 | 586,15 |201,61 | 352,48 | +-----------------------------------------+--------+------------+--------+---------+ | | | 1,47 | 4,28 | 2,45 | +-----------------------------------------+--------+------------+--------+---------+ | Medium complex object | | | | | +-----------------------------------------+--------+------------+--------+---------+ | Encode | 9750,37| 1377,15 |1512,06 | 3341,91 | +-----------------------------------------+--------+------------+--------+---------+ | | | 7,08 | 6,45 | 2,92 | +-----------------------------------------+--------+------------+--------+---------+ | Decode | 5576,75| 4247,16 | 3587,83| 2850,13 | +-----------------------------------------+--------+------------+--------+---------+ | | | 1,31| 1,55 | 1,96 | +-----------------------------------------+--------+------------+--------+---------+ | Array with 256 strings | | | | | +-----------------------------------------+--------+------------+--------+---------+ | Encode |17998,01| 12954,46 |8715,02 | 15924,35| +-----------------------------------------+--------+------------+--------+---------+ | | | 1,39| 2,07| 1,13 | +-----------------------------------------+--------+------------+--------+---------+ | Decode |14540,71| 19696,13 |14908,46| 9547,14 | +-----------------------------------------+--------+------------+--------+---------+ | | | 0,74 | 0,98 | 1,52 | +-----------------------------------------+--------+------------+--------+---------+ | Array with 256 doubles | | | | | +-----------------------------------------+--------+------------+--------+---------+ | Encode | 2185,20| 1466,87 | 1956,99| 3421,10 | +-----------------------------------------+--------+------------+--------+---------+ | | | 1,49| 1,12 | 0,64 | +-----------------------------------------+--------+------------+--------+---------+ | Decode |16062,01| 8990,50 | 9743,40|8331,74 | +-----------------------------------------+--------+------------+--------+---------+ | | | 1,79| 1,65| 1,93 | +-----------------------------------------+--------+------------+--------+---------+ | Array with 256 True values | | | | | +-----------------------------------------+--------+------------+--------+---------+ | Encode |69767,60| 25202,56 |41145,99|64330,76 | +-----------------------------------------+--------+------------+--------+---------+ | | | 2,77 | 1,70 | 1,08 | +-----------------------------------------+--------+------------+--------+---------+ |Decode |91416,02| 56439,97 |54918,09| 42786,02| +-----------------------------------------+--------+------------+--------+---------+ | | | 1,62| 1,66 | 2,14 | +-----------------------------------------+--------+------------+--------+---------+ | Array with 256 dict{string, int} pairs | | | | | +-----------------------------------------+--------+------------+--------+---------+ | | | | | | +-----------------------------------------+--------+------------+--------+---------+ | Encode |11307,54| 1830,45 | 2720,90| 7725,56 | +-----------------------------------------+--------+------------+--------+---------+ | | | 6,18| 4,16 | 1,46 | +-----------------------------------------+--------+------------+--------+---------+ | Decode |8695,94 | 7572,89 | 6076,71|5231,32 | +-----------------------------------------+--------+------------+--------+---------+ | | | 1,15| 1,43| 1,66 | +-----------------------------------------+--------+------------+--------+---------+ | Dict with 256 arrays with 256 dict | | | | | +-----------------------------------------+--------+------------+--------+---------+ | Encode | 37,76 | 4,88 | 10,49 | 27,62 | +-----------------------------------------+--------+------------+--------+---------+ | | | 7,74| 3,60| 1,37 | +-----------------------------------------+--------+------------+--------+---------+ |Decode | 17,70 | 15,56 | 11,25 | 12,00 | +-----------------------------------------+--------+------------+--------+---------+ | | | 1,14| 1,57| 1,47 | +-----------------------------------------+--------+------------+--------+---------+