All Projects → ultrajson → Ultrajson

ultrajson / Ultrajson

Licence: other
Ultra fast JSON decoder and encoder written in C with Python bindings

Programming Languages

python
139335 projects - #7 most used programming language
c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to Ultrajson

Gojay
fastest JSON encoder/decoder with powerful stream API for Golang
Stars: ✭ 2,009 (-42.67%)
Mutual labels:  json, decoder, encoder
Json Rust
JSON implementation in Rust
Stars: ✭ 395 (-88.73%)
Mutual labels:  json, decoder, encoder
pytextcodifier
📦 Turn your text files into codified images or your codified images into text files.
Stars: ✭ 14 (-99.6%)
Mutual labels:  encoder, decoder
fadec
A fast and lightweight decoder for x86 and x86-64 and encoder for x86-64.
Stars: ✭ 44 (-98.74%)
Mutual labels:  encoder, decoder
morse-pro
Library for manipulating Morse code text and sound. Understands prosigns and Farnsworth speed. Can create WAV files and analyse input from the microphone or audio files.
Stars: ✭ 85 (-97.57%)
Mutual labels:  encoder, decoder
Ikigajson
A high performance JSON library in Swift
Stars: ✭ 302 (-91.38%)
Mutual labels:  json, encoder
Image deionising auto encoder
Noise removal from images using Convolutional autoencoder
Stars: ✭ 34 (-99.03%)
Mutual labels:  encoder, decoder
android-opus-codec
Implementation of Opus encoder and decoder in C++ for android with JNI
Stars: ✭ 44 (-98.74%)
Mutual labels:  encoder, decoder
png
🖼A full-featured PNG decoder and encoder.
Stars: ✭ 64 (-98.17%)
Mutual labels:  encoder, decoder
IkigaJSON
A high performance JSON library in Swift
Stars: ✭ 316 (-90.98%)
Mutual labels:  encoder, decoder
AnimatedGif
📼 A high performance .NET library for reading and creating animated GIFs
Stars: ✭ 106 (-96.97%)
Mutual labels:  encoder, decoder
Streaming Json Encoder
PHP library for iteratively encoding large JSON documents piece by piece
Stars: ✭ 260 (-92.58%)
Mutual labels:  json, encoder
otfed
An OpenType font format encoder & decoder written in OCaml
Stars: ✭ 15 (-99.57%)
Mutual labels:  encoder, decoder
online-ethereum-abi-encoder-decoder
A quick online tool to abi-encode and abi-decode constructor arguments used in ethereum's solidity. https://adibas03.github.io/online-ethereum-abi-encoder-decoder/
Stars: ✭ 37 (-98.94%)
Mutual labels:  encoder, decoder
audio
Audio support for Go language.
Stars: ✭ 62 (-98.23%)
Mutual labels:  encoder, decoder
keystore-go
A Go (golang) implementation of Java KeyStore encoder/decoder
Stars: ✭ 119 (-96.6%)
Mutual labels:  encoder, decoder
aiff
Battle tested aiff decoder/encoder
Stars: ✭ 20 (-99.43%)
Mutual labels:  encoder, decoder
He
A robust HTML entity encoder/decoder written in JavaScript.
Stars: ✭ 2,973 (-15.15%)
Mutual labels:  decoder, encoder
bytecodec
A tiny Rust framework for implementing encoders/decoders of byte-oriented protocols
Stars: ✭ 21 (-99.4%)
Mutual labels:  encoder, decoder
png pong
A pure Rust PNG image decoder and encoder based on lodepng.
Stars: ✭ 21 (-99.4%)
Mutual labels:  encoder, decoder

UltraJSON

PyPI version Supported Python versions PyPI downloads GitHub Actions status Travis CI status codecov DOI Code style: Black

UltraJSON is an ultra fast JSON encoder and decoder written in pure C with bindings for Python 3.7+.

Install with pip:

python -m 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]""")
[{'key': 'value'}, 81, True]

Encoder options

encode_html_chars

Used to enable special encoding of "unsafe" HTML characters into safer Unicode sequences. Default is False:

>>> ujson.dumps("<script>John&Doe", encode_html_chars=True)
'"\\u003cscript\\u003eJohn\\u0026Doe"'

ensure_ascii

Limits output to ASCII and escapes all extended characters above 127. Default is True. If your end format supports UTF-8, setting this option to false is highly recommended to save space:

>>> ujson.dumps("åäö")
'"\\u00e5\\u00e4\\u00f6"'
>>> ujson.dumps("åäö", ensure_ascii=False)
'"åäö"'

escape_forward_slashes

Controls whether forward slashes (/) are escaped. Default is True:

>>> ujson.dumps("http://esn.me")
'"http:\\/\\/esn.me"'
>>> ujson.dumps("http://esn.me", escape_forward_slashes=False)
'"http://esn.me"'

indent

Controls whether indentation ("pretty output") is enabled. Default is 0 (disabled):

>>> ujson.dumps({"foo": "bar"})
'{"foo":"bar"}'
>>> print(ujson.dumps({"foo": "bar"}, indent=4))
{
    "foo":"bar"
}

Benchmarks

UltraJSON calls/sec compared to other popular JSON parsers with performance gain specified below each.

Test machine

Linux 5.0.0-1032-azure x86_64 #34-Ubuntu SMP Mon Feb 10 19:37:25 UTC 2020

Versions

  • CPython 3.8.2 (default, Feb 28 2020, 14:28:43) [GCC 7.4.0]
  • nujson : 1.35.2
  • orjson : 2.6.1
  • simplejson: 3.17.0
  • ujson : 2.0.2
ujson nujson orjson simplejson json
Array with 256 doubles
encode 22,082 4,282 76,975 5,328 5,436
decode 24,127 34,349 29,059 14,174 13,822
Array with 256 UTF-8 strings
encode 3,557 2,528 24,300 3,061 2,068
decode 2,030 2,490 931 406 358
Array with 256 strings
encode 39,041 31,769 76,403 16,615 16,910
decode 25,185 24,287 34,437 32,388 27,999
Medium complex object
encode 10,382 11,427 32,995 3,959 5,275
decode 9,785 9,796 11,515 5,898 7,200
Array with 256 True values
encode 114,341 101,039 344,256 62,382 72,872
decode 149,367 151,615 181,123 114,597 130,392
Array with 256 dict{string, int} pairs
encode 13,715 14,420 51,942 3,271 6,584
decode 12,670 11,788 12,176 6,743 8,278
Dict with 256 arrays with 256 dict{string, int} pairs
encode 50 54 216 10 23
decode 32 32 30 20 23
Dict with 256 arrays with 256 dict{string, int} pairs, outputting sorted keys
encode 46 41 8 24
Complex object
encode 533 582 408 431
decode 466 454 154 164
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].