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', ), ... }
Also you can set the UJSONParser
class as your default parser in your settings.py
REST_FRAMEWORK = { 'DEFAULT_PARSER_CLASSES': ( 'drf_ujson.parsers.UJSONParser', ), ... }
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.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size drf_ujson2-1.6.1-py3-none-any.whl (4.9 kB) | File type Wheel | Python version py3 | Upload date | Hashes View |
Filename, size drf_ujson2-1.6.1.tar.gz (4.6 kB) | File type Source | Python version None | Upload date | Hashes View |
Close
Hashes for drf_ujson2-1.6.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b7ceeeb7e40e769e59fa3d82dd2c6e79b69f8b969e72204205f86577a8c3f03 |
|
MD5 | 40cb342189694efad5f34adea2056976 |
|
BLAKE2-256 | ce866fef76bb8ec998a1afde4b14dcb0df48b03c597e18206663ede8fd9da6bb |