Django Rest Framework UJSON Renderer
Project description
Django Rest Framework UJSON Renderer
Django Rest Framework renderer using ujson
Installation
pip install drf_ujson2
You can then set the UJSONRenderer
class as your default renderer in your settings.py
REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': (
'drf_ujson.renderers.UJSONRenderer',
),
...
}
Benchmarks
This is on average 2.3x faster than the default JSON Serializer.
import timeit
setup = '''
from proposals.models import Proposal
from proposals.serializers import ProposalSerializer
from rest_framework.renderers import JSONRenderer
from drf_ujson.renderers import UJSONRenderer
proposals = Proposal.objects.all()
serialized = ProposalSerializer(proposals, many=True).data
'''
stdlib_test = '''
JSONRenderer().render(serialized)
'''
ujson_test = '''
UJSONRenderer().render(serialized)
'''
stdlib_result = timeit.repeat(stdlib_test, setup=setup, number=1, repeat=10)
ujson_result = timeit.repeat(ujson_test, setup=setup, number=1, repeat=10)
print stdlib_result
print sum(stdlib_result) / 10
print ujson_result
print sum(ujson_result) / 10
# stdlib results
[
0.004502058029174805,
0.004289865493774414,
0.006896018981933594,
0.0048198699951171875,
0.004084110260009766,
0.007154941558837891,
0.003937959671020508,
0.004029035568237305,
0.004770040512084961,
0.004539966583251953
]
# avg
0.00490238666534
# ujson results
[
0.0016620159149169922,
0.001817941665649414,
0.0015261173248291016,
0.0040950775146484375,
0.0021469593048095703,
0.001798868179321289,
0.001569986343383789,
0.0019931793212890625,
0.0017120838165283203,
0.001814126968383789
]
# avg
0.00201363563538
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
drf_ujson2-1.8.0.tar.gz
(4.6 kB
view details)
Built Distribution
File details
Details for the file drf_ujson2-1.8.0.tar.gz
.
File metadata
- Download URL: drf_ujson2-1.8.0.tar.gz
- Upload date:
- Size: 4.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
3b42cade02138cc1ddb159e4a91ff7115929d3066242bffc623ade9b3a525d70
|
|
MD5 |
d3e3c4ba544a67185e5fb6201e81d0e6
|
|
BLAKE2b-256 |
ea9b6255e579d0903f2c1a50c77a7e3af8e563cd9f116af21ac6e7690eec019c
|
File details
Details for the file drf_ujson2-1.8.0-py3-none-any.whl
.
File metadata
- Download URL: drf_ujson2-1.8.0-py3-none-any.whl
- Upload date:
- Size: 4.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
6a6e32f687e29394002d8bec91e8a9ab44251564888fa5d907c737bc2f62ce42
|
|
MD5 |
4bf281c3616d204596e5c872388c8299
|
|
BLAKE2b-256 |
7cdd8f9f458de766c6e83912058c1fc47946a5cba34a8fee9fe7d9974c7d36b7
|