Skip to main content

Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy

Project description

orjson

orjson is a fast, correct JSON library for Python. It benchmarks as the fastest Python library for JSON and is more correct than the standard json library or other third-party libraries. It serializes dataclass, datetime, numpy, and UUID instances natively.

Its features and drawbacks compared to other Python JSON libraries:

  • serializes dataclass instances 40-50x as fast as other libraries
  • serializes datetime, date, and time instances to RFC 3339 format, e.g., "1970-01-01T00:00:00+00:00"
  • serializes numpy.ndarray instances 4-12x as fast with 0.3x the memory usage of other libraries
  • pretty prints 10x to 20x as fast as the standard library
  • serializes to bytes rather than str, i.e., is not a drop-in replacement
  • serializes str without escaping unicode to ASCII, e.g., "好" rather than "\\u597d"
  • serializes float 10x as fast and deserializes twice as fast as other libraries
  • serializes subclasses of str, int, list, and dict natively, requiring default to specify how to serialize others
  • serializes arbitrary types using a default hook
  • has strict UTF-8 conformance, more correct than the standard library
  • has strict JSON conformance in not supporting Nan/Infinity/-Infinity
  • has an option for strict JSON conformance on 53-bit integers with default support for 64-bit
  • does not provide load() or dump() functions for reading from/writing to file-like objects

orjson supports CPython 3.7, 3.8, 3.9, 3.10, 3.11, and 3.12. It distributes amd64/x86_64, aarch64/armv8, arm7, POWER/ppc64le, and s390x wheels for Linux, amd64 and aarch64 wheels for macOS, and amd64 and i686/x86 wheels for Windows. orjson does not support PyPy. Releases follow semantic versioning and serializing a new object type without an opt-in flag is considered a breaking change.

orjson is licensed under both the Apache 2.0 and MIT licenses. The repository and issue tracker is github.com/ijl/orjson, and patches may be submitted there. There is a CHANGELOG available in the repository.

  1. Usage
    1. Install
    2. Quickstart
    3. Migrating
    4. Serialize
      1. default
      2. option
      3. Fragment
    5. Deserialize
  2. Types
    1. dataclass
    2. datetime
    3. enum
    4. float
    5. int
    6. numpy
    7. str
    8. uuid
  3. Testing
  4. Performance
    1. Latency
    2. Memory
    3. Reproducing
  5. Questions
  6. Packaging
  7. License

Usage

Install

To install a wheel from PyPI:

pip install --upgrade "pip>=20.3" # manylinux_x_y, universal2 wheel support
pip install --upgrade orjson

To build a wheel, see packaging.

Quickstart

This is an example of serializing, with options specified, and deserializing:

>>> import orjson, datetime, numpy
>>> data = {
    "type": "job",
    "created_at": datetime.datetime(1970, 1, 1),
    "status": "🆗",
    "payload": numpy.array([[1, 2], [3, 4]]),
}
>>> orjson.dumps(data, option=orjson.OPT_NAIVE_UTC | orjson.OPT_SERIALIZE_NUMPY)
b'{"type":"job","created_at":"1970-01-01T00:00:00+00:00","status":"\xf0\x9f\x86\x97","payload":[[1,2],[3,4]]}'
>>> orjson.loads(_)
{'type': 'job', 'created_at': '1970-01-01T00:00:00+00:00', 'status': '🆗', 'payload': [[1, 2], [3, 4]]}

Migrating

orjson version 3 serializes more types than version 2. Subclasses of str, int, dict, and list are now serialized. This is faster and more similar to the standard library. It can be disabled with orjson.OPT_PASSTHROUGH_SUBCLASS.dataclasses.dataclass instances are now serialized by default and cannot be customized in a default function unless option=orjson.OPT_PASSTHROUGH_DATACLASS is specified. uuid.UUID instances are serialized by default. For any type that is now serialized, implementations in a default function and options enabling them can be removed but do not need to be. There was no change in deserialization.

To migrate from the standard library, the largest difference is that orjson.dumps returns bytes and json.dumps returns a str. Users with dict objects using non-str keys should specify option=orjson.OPT_NON_STR_KEYS. sort_keys is replaced by option=orjson.OPT_SORT_KEYS. indent is replaced by option=orjson.OPT_INDENT_2 and other levels of indentation are not supported.

Serialize

def dumps(
    __obj: Any,
    default: Optional[Callable[[Any], Any]] = ...,
    option: Optional[int] = ...,
) -> bytes: ...

dumps() serializes Python objects to JSON.

It natively serializes str, dict, list, tuple, int, float, bool, None, dataclasses.dataclass, typing.TypedDict, datetime.datetime, datetime.date, datetime.time, uuid.UUID, numpy.ndarray, and orjson.Fragment instances. It supports arbitrary types through default. It serializes subclasses of str, int, dict, list, dataclasses.dataclass, and enum.Enum. It does not serialize subclasses of tuple to avoid serializing namedtuple objects as arrays. To avoid serializing subclasses, specify the option orjson.OPT_PASSTHROUGH_SUBCLASS.

The output is a bytes object containing UTF-8.

The global interpreter lock (GIL) is held for the duration of the call.

It raises JSONEncodeError on an unsupported type. This exception message describes the invalid object with the error message Type is not JSON serializable: .... To fix this, specify default.

It raises JSONEncodeError on a str that contains invalid UTF-8.

It raises JSONEncodeError on an integer that exceeds 64 bits by default or, with OPT_STRICT_INTEGER, 53 bits.

It raises JSONEncodeError if a dict has a key of a type other than str, unless OPT_NON_STR_KEYS is specified.

It raises JSONEncodeError if the output of default recurses to handling by default more than 254 levels deep.

It raises JSONEncodeError on circular references.

It raises JSONEncodeError if a tzinfo on a datetime object is unsupported.

JSONEncodeError is a subclass of TypeError. This is for compatibility with the standard library.

If the failure was caused by an exception in default then JSONEncodeError chains the original exception as __cause__.

default

To serialize a subclass or arbitrary types, specify default as a callable that returns a supported type. default may be a function, lambda, or callable class instance. To specify that a type was not handled by default, raise an exception such as TypeError.

>>> import orjson, decimal
>>>
def default(obj):
    if isinstance(obj, decimal.Decimal):
        return str(obj)
    raise TypeError

>>> orjson.dumps(decimal.Decimal("0.0842389659712649442845"))
JSONEncodeError: Type is not JSON serializable: decimal.Decimal
>>> orjson.dumps(decimal.Decimal("0.0842389659712649442845"), default=default)
b'"0.0842389659712649442845"'
>>> orjson.dumps({1, 2}, default=default)
orjson.JSONEncodeError: Type is not JSON serializable: set

The default callable may return an object that itself must be handled by default up to 254 times before an exception is raised.

It is important that default raise an exception if a type cannot be handled. Python otherwise implicitly returns None, which appears to the caller like a legitimate value and is serialized:

>>> import orjson, json, rapidjson
>>>
def default(obj):
    if isinstance(obj, decimal.Decimal):
        return str(obj)

>>> orjson.dumps({"set":{1, 2}}, default=default)
b'{"set":null}'
>>> json.dumps({"set":{1, 2}}, default=default)
'{"set":null}'
>>> rapidjson.dumps({"set":{1, 2}}, default=default)
'{"set":null}'

option

To modify how data is serialized, specify option. Each option is an integer constant in orjson. To specify multiple options, mask them together, e.g., option=orjson.OPT_STRICT_INTEGER | orjson.OPT_NAIVE_UTC.

OPT_APPEND_NEWLINE

Append \n to the output. This is a convenience and optimization for the pattern of dumps(...) + "\n". bytes objects are immutable and this pattern copies the original contents.

>>> import orjson
>>> orjson.dumps([])
b"[]"
>>> orjson.dumps([], option=orjson.OPT_APPEND_NEWLINE)
b"[]\n"
OPT_INDENT_2

Pretty-print output with an indent of two spaces. This is equivalent to indent=2 in the standard library. Pretty printing is slower and the output larger. orjson is the fastest compared library at pretty printing and has much less of a slowdown to pretty print than the standard library does. This option is compatible with all other options.

>>> import orjson
>>> orjson.dumps({"a": "b", "c": {"d": True}, "e": [1, 2]})
b'{"a":"b","c":{"d":true},"e":[1,2]}'
>>> orjson.dumps(
    {"a": "b", "c": {"d": True}, "e": [1, 2]},
    option=orjson.OPT_INDENT_2
)
b'{\n  "a": "b",\n  "c": {\n    "d": true\n  },\n  "e": [\n    1,\n    2\n  ]\n}'

If displayed, the indentation and linebreaks appear like this:

{
  "a": "b",
  "c": {
    "d": true
  },
  "e": [
    1,
    2
  ]
}

This measures serializing the github.json fixture as compact (52KiB) or pretty (64KiB):

Library compact (ms) pretty (ms) vs. orjson
orjson 0.03 0.04 1
ujson 0.18 0.19 4.6
rapidjson 0.1 0.12 2.9
simplejson 0.25 0.89 21.4
json 0.18 0.71 17

This measures serializing the citm_catalog.json fixture, more of a worst case due to the amount of nesting and newlines, as compact (489KiB) or pretty (1.1MiB):

Library compact (ms) pretty (ms) vs. orjson
orjson 0.59 0.71 1
ujson 2.9 3.59 5
rapidjson 1.81 2.8 3.9
simplejson 10.43 42.13 59.1
json 4.16 33.42 46.9

This can be reproduced using the pyindent script.

OPT_NAIVE_UTC

Serialize datetime.datetime objects without a tzinfo as UTC. This has no effect on datetime.datetime objects that have tzinfo set.

>>> import orjson, datetime
>>> orjson.dumps(
        datetime.datetime(1970, 1, 1, 0, 0, 0),
    )
b'"1970-01-01T00:00:00"'
>>> orjson.dumps(
        datetime.datetime(1970, 1, 1, 0, 0, 0),
        option=orjson.OPT_NAIVE_UTC,
    )
b'"1970-01-01T00:00:00+00:00"'
OPT_NON_STR_KEYS

Serialize dict keys of type other than str. This allows dict keys to be one of str, int, float, bool, None, datetime.datetime, datetime.date, datetime.time, enum.Enum, and uuid.UUID. For comparison, the standard library serializes str, int, float, bool or None by default. orjson benchmarks as being faster at serializing non-str keys than other libraries. This option is slower for str keys than the default.

>>> import orjson, datetime, uuid
>>> orjson.dumps(
        {uuid.UUID("7202d115-7ff3-4c81-a7c1-2a1f067b1ece"): [1, 2, 3]},
        option=orjson.OPT_NON_STR_KEYS,
    )
b'{"7202d115-7ff3-4c81-a7c1-2a1f067b1ece":[1,2,3]}'
>>> orjson.dumps(
        {datetime.datetime(1970, 1, 1, 0, 0, 0): [1, 2, 3]},
        option=orjson.OPT_NON_STR_KEYS | orjson.OPT_NAIVE_UTC,
    )
b'{"1970-01-01T00:00:00+00:00":[1,2,3]}'

These types are generally serialized how they would be as values, e.g., datetime.datetime is still an RFC 3339 string and respects options affecting it. The exception is that int serialization does not respect OPT_STRICT_INTEGER.

This option has the risk of creating duplicate keys. This is because non-str objects may serialize to the same str as an existing key, e.g., {"1": true, 1: false}. The last key to be inserted to the dict will be serialized last and a JSON deserializer will presumably take the last occurrence of a key (in the above, false). The first value will be lost.

This option is compatible with orjson.OPT_SORT_KEYS. If sorting is used, note the sort is unstable and will be unpredictable for duplicate keys.

>>> import orjson, datetime
>>> orjson.dumps(
    {"other": 1, datetime.date(1970, 1, 5): 2, datetime.date(1970, 1, 3): 3},
    option=orjson.OPT_NON_STR_KEYS | orjson.OPT_SORT_KEYS
)
b'{"1970-01-03":3,"1970-01-05":2,"other":1}'

This measures serializing 589KiB of JSON comprising a list of 100 dict in which each dict has both 365 randomly-sorted int keys representing epoch timestamps as well as one str key and the value for each key is a single integer. In "str keys", the keys were converted to str before serialization, and orjson still specifes option=orjson.OPT_NON_STR_KEYS (which is always somewhat slower).

Library str keys (ms) int keys (ms) int keys sorted (ms)
orjson 1.53 2.16 4.29
ujson 3.07 5.65
rapidjson 4.29
simplejson 11.24 14.50 21.86
json 7.17 8.49

ujson is blank for sorting because it segfaults. json is blank because it raises TypeError on attempting to sort before converting all keys to str. rapidjson is blank because it does not support non-str keys. This can be reproduced using the pynonstr script.

OPT_OMIT_MICROSECONDS

Do not serialize the microsecond field on datetime.datetime and datetime.time instances.

>>> import orjson, datetime
>>> orjson.dumps(
        datetime.datetime(1970, 1, 1, 0, 0, 0, 1),
    )
b'"1970-01-01T00:00:00.000001"'
>>> orjson.dumps(
        datetime.datetime(1970, 1, 1, 0, 0, 0, 1),
        option=orjson.OPT_OMIT_MICROSECONDS,
    )
b'"1970-01-01T00:00:00"'
OPT_PASSTHROUGH_DATACLASS

Passthrough dataclasses.dataclass instances to default. This allows customizing their output but is much slower.

>>> import orjson, dataclasses
>>>
@dataclasses.dataclass
class User:
    id: str
    name: str
    password: str

def default(obj):
    if isinstance(obj, User):
        return {"id": obj.id, "name": obj.name}
    raise TypeError

>>> orjson.dumps(User("3b1", "asd", "zxc"))
b'{"id":"3b1","name":"asd","password":"zxc"}'
>>> orjson.dumps(User("3b1", "asd", "zxc"), option=orjson.OPT_PASSTHROUGH_DATACLASS)
TypeError: Type is not JSON serializable: User
>>> orjson.dumps(
        User("3b1", "asd", "zxc"),
        option=orjson.OPT_PASSTHROUGH_DATACLASS,
        default=default,
    )
b'{"id":"3b1","name":"asd"}'
OPT_PASSTHROUGH_DATETIME

Passthrough datetime.datetime, datetime.date, and datetime.time instances to default. This allows serializing datetimes to a custom format, e.g., HTTP dates:

>>> import orjson, datetime
>>>
def default(obj):
    if isinstance(obj, datetime.datetime):
        return obj.strftime("%a, %d %b %Y %H:%M:%S GMT")
    raise TypeError

>>> orjson.dumps({"created_at": datetime.datetime(1970, 1, 1)})
b'{"created_at":"1970-01-01T00:00:00"}'
>>> orjson.dumps({"created_at": datetime.datetime(1970, 1, 1)}, option=orjson.OPT_PASSTHROUGH_DATETIME)
TypeError: Type is not JSON serializable: datetime.datetime
>>> orjson.dumps(
        {"created_at": datetime.datetime(1970, 1, 1)},
        option=orjson.OPT_PASSTHROUGH_DATETIME,
        default=default,
    )
b'{"created_at":"Thu, 01 Jan 1970 00:00:00 GMT"}'

This does not affect datetimes in dict keys if using OPT_NON_STR_KEYS.

OPT_PASSTHROUGH_SUBCLASS

Passthrough subclasses of builtin types to default.

>>> import orjson
>>>
class Secret(str):
    pass

def default(obj):
    if isinstance(obj, Secret):
        return "******"
    raise TypeError

>>> orjson.dumps(Secret("zxc"))
b'"zxc"'
>>> orjson.dumps(Secret("zxc"), option=orjson.OPT_PASSTHROUGH_SUBCLASS)
TypeError: Type is not JSON serializable: Secret
>>> orjson.dumps(Secret("zxc"), option=orjson.OPT_PASSTHROUGH_SUBCLASS, default=default)
b'"******"'

This does not affect serializing subclasses as dict keys if using OPT_NON_STR_KEYS.

OPT_SERIALIZE_DATACLASS

This is deprecated and has no effect in version 3. In version 2 this was required to serialize dataclasses.dataclass instances. For more, see dataclass.

OPT_SERIALIZE_NUMPY

Serialize numpy.ndarray instances. For more, see numpy.

OPT_SERIALIZE_UUID

This is deprecated and has no effect in version 3. In version 2 this was required to serialize uuid.UUID instances. For more, see UUID.

OPT_SORT_KEYS

Serialize dict keys in sorted order. The default is to serialize in an unspecified order. This is equivalent to sort_keys=True in the standard library.

This can be used to ensure the order is deterministic for hashing or tests. It has a substantial performance penalty and is not recommended in general.

>>> import orjson
>>> orjson.dumps({"b": 1, "c": 2, "a": 3})
b'{"b":1,"c":2,"a":3}'
>>> orjson.dumps({"b": 1, "c": 2, "a": 3}, option=orjson.OPT_SORT_KEYS)
b'{"a":3,"b":1,"c":2}'

This measures serializing the twitter.json fixture unsorted and sorted:

Library unsorted (ms) sorted (ms) vs. orjson
orjson 0.32 0.54 1
ujson 1.6 2.07 3.8
rapidjson 1.12 1.65 3.1
simplejson 2.25 3.13 5.8
json 1.78 2.32 4.3

The benchmark can be reproduced using the pysort script.

The sorting is not collation/locale-aware:

>>> import orjson
>>> orjson.dumps({"a": 1, "ä": 2, "A": 3}, option=orjson.OPT_SORT_KEYS)
b'{"A":3,"a":1,"\xc3\xa4":2}'

This is the same sorting behavior as the standard library, rapidjson, simplejson, and ujson.

dataclass also serialize as maps but this has no effect on them.

OPT_STRICT_INTEGER

Enforce 53-bit limit on integers. The limit is otherwise 64 bits, the same as the Python standard library. For more, see int.

OPT_UTC_Z

Serialize a UTC timezone on datetime.datetime instances as Z instead of +00:00.

>>> import orjson, datetime, zoneinfo
>>> orjson.dumps(
        datetime.datetime(1970, 1, 1, 0, 0, 0, tzinfo=zoneinfo.ZoneInfo("UTC")),
    )
b'"1970-01-01T00:00:00+00:00"'
>>> orjson.dumps(
        datetime.datetime(1970, 1, 1, 0, 0, 0, tzinfo=zoneinfo.ZoneInfo("UTC")),
        option=orjson.OPT_UTC_Z
    )
b'"1970-01-01T00:00:00Z"'

Fragment

orjson.Fragment includes already-serialized JSON in a document. This is an efficient way to include JSON blobs from a cache, JSONB field, or separately serialized object without first deserializing to Python objects via loads().

>>> import orjson
>>> orjson.dumps({"key": "zxc", "data": orjson.Fragment(b'{"a": "b", "c": 1}')})
b'{"key":"zxc","data":{"a": "b", "c": 1}}'

It does no reformatting: orjson.OPT_INDENT_2 will not affect a compact blob nor will a pretty-printed JSON blob be rewritten as compact.

The input must be bytes or str and given as a positional argument.

This raises orjson.JSONEncodeError if a str is given and the input is not valid UTF-8. It otherwise does no validation and it is possible to write invalid JSON. This does not escape characters. The implementation is tested to not crash if given invalid strings or invalid JSON.

This is similar to RawJSON in rapidjson.

Deserialize

def loads(__obj: Union[bytes, bytearray, memoryview, str]) -> Any: ...

loads() deserializes JSON to Python objects. It deserializes to dict, list, int, float, str, bool, and None objects.

bytes, bytearray, memoryview, and str input are accepted. If the input exists as a memoryview, bytearray, or bytes object, it is recommended to pass these directly rather than creating an unnecessary str object. That is, orjson.loads(b"{}") instead of orjson.loads(b"{}".decode("utf-8")). This has lower memory usage and lower latency.

The input must be valid UTF-8.

orjson maintains a cache of map keys for the duration of the process. This causes a net reduction in memory usage by avoiding duplicate strings. The keys must be at most 64 bytes to be cached and 1024 entries are stored.

The global interpreter lock (GIL) is held for the duration of the call.

It raises JSONDecodeError if given an invalid type or invalid JSON. This includes if the input contains NaN, Infinity, or -Infinity, which the standard library allows, but is not valid JSON.

JSONDecodeError is a subclass of json.JSONDecodeError and ValueError. This is for compatibility with the standard library.

Types

dataclass

orjson serializes instances of dataclasses.dataclass natively. It serializes instances 40-50x as fast as other libraries and avoids a severe slowdown seen in other libraries compared to serializing dict.

It is supported to pass all variants of dataclasses, including dataclasses using __slots__, frozen dataclasses, those with optional or default attributes, and subclasses. There is a performance benefit to not using __slots__.

Library dict (ms) dataclass (ms) vs. orjson
orjson 1.40 1.60 1
ujson
rapidjson 3.64 68.48 42
simplejson 14.21 92.18 57
json 13.28 94.90 59

This measures serializing 555KiB of JSON, orjson natively and other libraries using default to serialize the output of dataclasses.asdict(). This can be reproduced using the pydataclass script.

Dataclasses are serialized as maps, with every attribute serialized and in the order given on class definition:

>>> import dataclasses, orjson, typing

@dataclasses.dataclass
class Member:
    id: int
    active: bool = dataclasses.field(default=False)

@dataclasses.dataclass
class Object:
    id: int
    name: str
    members: typing.List[Member]

>>> orjson.dumps(Object(1, "a", [Member(1, True), Member(2)]))
b'{"id":1,"name":"a","members":[{"id":1,"active":true},{"id":2,"active":false}]}'

datetime

orjson serializes datetime.datetime objects to RFC 3339 format, e.g., "1970-01-01T00:00:00+00:00". This is a subset of ISO 8601 and is compatible with isoformat() in the standard library.

>>> import orjson, datetime, zoneinfo
>>> orjson.dumps(
    datetime.datetime(2018, 12, 1, 2, 3, 4, 9, tzinfo=zoneinfo.ZoneInfo("Australia/Adelaide"))
)
b'"2018-12-01T02:03:04.000009+10:30"'
>>> orjson.dumps(
    datetime.datetime(2100, 9, 1, 21, 55, 2).replace(tzinfo=zoneinfo.ZoneInfo("UTC"))
)
b'"2100-09-01T21:55:02+00:00"'
>>> orjson.dumps(
    datetime.datetime(2100, 9, 1, 21, 55, 2)
)
b'"2100-09-01T21:55:02"'

datetime.datetime supports instances with a tzinfo that is None, datetime.timezone.utc, a timezone instance from the python3.9+ zoneinfo module, or a timezone instance from the third-party pendulum, pytz, or dateutil/arrow libraries.

It is fastest to use the standard library's zoneinfo.ZoneInfo for timezones.

datetime.time objects must not have a tzinfo.

>>> import orjson, datetime
>>> orjson.dumps(datetime.time(12, 0, 15, 290))
b'"12:00:15.000290"'

datetime.date objects will always serialize.

>>> import orjson, datetime
>>> orjson.dumps(datetime.date(1900, 1, 2))
b'"1900-01-02"'

Errors with tzinfo result in JSONEncodeError being raised.

To disable serialization of datetime objects specify the option orjson.OPT_PASSTHROUGH_DATETIME.

To use "Z" suffix instead of "+00:00" to indicate UTC ("Zulu") time, use the option orjson.OPT_UTC_Z.

To assume datetimes without timezone are UTC, use the option orjson.OPT_NAIVE_UTC.

enum

orjson serializes enums natively. Options apply to their values.

>>> import enum, datetime, orjson
>>>
class DatetimeEnum(enum.Enum):
    EPOCH = datetime.datetime(1970, 1, 1, 0, 0, 0)
>>> orjson.dumps(DatetimeEnum.EPOCH)
b'"1970-01-01T00:00:00"'
>>> orjson.dumps(DatetimeEnum.EPOCH, option=orjson.OPT_NAIVE_UTC)
b'"1970-01-01T00:00:00+00:00"'

Enums with members that are not supported types can be serialized using default:

>>> import enum, orjson
>>>
class Custom:
    def __init__(self, val):
        self.val = val

def default(obj):
    if isinstance(obj, Custom):
        return obj.val
    raise TypeError

class CustomEnum(enum.Enum):
    ONE = Custom(1)

>>> orjson.dumps(CustomEnum.ONE, default=default)
b'1'

float

orjson serializes and deserializes double precision floats with no loss of precision and consistent rounding.

orjson.dumps() serializes Nan, Infinity, and -Infinity, which are not compliant JSON, as null:

>>> import orjson, ujson, rapidjson, json
>>> orjson.dumps([float("NaN"), float("Infinity"), float("-Infinity")])
b'[null,null,null]'
>>> ujson.dumps([float("NaN"), float("Infinity"), float("-Infinity")])
OverflowError: Invalid Inf value when encoding double
>>> rapidjson.dumps([float("NaN"), float("Infinity"), float("-Infinity")])
'[NaN,Infinity,-Infinity]'
>>> json.dumps([float("NaN"), float("Infinity"), float("-Infinity")])
'[NaN, Infinity, -Infinity]'

int

orjson serializes and deserializes 64-bit integers by default. The range supported is a signed 64-bit integer's minimum (-9223372036854775807) to an unsigned 64-bit integer's maximum (18446744073709551615). This is widely compatible, but there are implementations that only support 53-bits for integers, e.g., web browsers. For those implementations, dumps() can be configured to raise a JSONEncodeError on values exceeding the 53-bit range.

>>> import orjson
>>> orjson.dumps(9007199254740992)
b'9007199254740992'
>>> orjson.dumps(9007199254740992, option=orjson.OPT_STRICT_INTEGER)
JSONEncodeError: Integer exceeds 53-bit range
>>> orjson.dumps(-9007199254740992, option=orjson.OPT_STRICT_INTEGER)
JSONEncodeError: Integer exceeds 53-bit range

numpy

orjson natively serializes numpy.ndarray and individual numpy.float64, numpy.float32, numpy.int64, numpy.int32, numpy.int16, numpy.int8, numpy.uint64, numpy.uint32, numpy.uint16, numpy.uint8, numpy.uintp, numpy.intp, numpy.datetime64, and numpy.bool instances.

orjson is faster than all compared libraries at serializing numpy instances. Serializing numpy data requires specifying option=orjson.OPT_SERIALIZE_NUMPY.

>>> import orjson, numpy
>>> orjson.dumps(
        numpy.array([[1, 2, 3], [4, 5, 6]]),
        option=orjson.OPT_SERIALIZE_NUMPY,
)
b'[[1,2,3],[4,5,6]]'

The array must be a contiguous C array (C_CONTIGUOUS) and one of the supported datatypes.

Note a difference between serializing numpy.float32 using ndarray.tolist() or orjson.dumps(..., option=orjson.OPT_SERIALIZE_NUMPY): tolist() converts to a double before serializing and orjson's native path does not. This can result in different rounding.

numpy.datetime64 instances are serialized as RFC 3339 strings and datetime options affect them.

>>> import orjson, numpy
>>> orjson.dumps(
        numpy.datetime64("2021-01-01T00:00:00.172"),
        option=orjson.OPT_SERIALIZE_NUMPY,
)
b'"2021-01-01T00:00:00.172000"'
>>> orjson.dumps(
        numpy.datetime64("2021-01-01T00:00:00.172"),
        option=(
            orjson.OPT_SERIALIZE_NUMPY |
            orjson.OPT_NAIVE_UTC |
            orjson.OPT_OMIT_MICROSECONDS
        ),
)
b'"2021-01-01T00:00:00+00:00"'

If an array is not a contiguous C array, contains an unsupported datatype, or contains a numpy.datetime64 using an unsupported representation (e.g., picoseconds), orjson falls through to default. In default, obj.tolist() can be specified. If an array is malformed, which is not expected, orjson.JSONEncodeError is raised.

This measures serializing 92MiB of JSON from an numpy.ndarray with dimensions of (50000, 100) and numpy.float64 values:

Library Latency (ms) RSS diff (MiB) vs. orjson
orjson 194 99 1.0
ujson
rapidjson 3,048 309 15.7
simplejson 3,023 297 15.6
json 3,133 297 16.1

This measures serializing 100MiB of JSON from an numpy.ndarray with dimensions of (100000, 100) and numpy.int32 values:

Library Latency (ms) RSS diff (MiB) vs. orjson
orjson 178 115 1.0
ujson
rapidjson 1,512 551 8.5
simplejson 1,606 504 9.0
json 1,506 503 8.4

This measures serializing 105MiB of JSON from an numpy.ndarray with dimensions of (100000, 200) and numpy.bool values:

Library Latency (ms) RSS diff (MiB) vs. orjson
orjson 157 120 1.0
ujson
rapidjson 710 327 4.5
simplejson 931 398 5.9
json 996 400 6.3

In these benchmarks, orjson serializes natively, ujson is blank because it does not support a default parameter, and the other libraries serialize ndarray.tolist() via default. The RSS column measures peak memory usage during serialization. This can be reproduced using the pynumpy script.

orjson does not have an installation or compilation dependency on numpy. The implementation is independent, reading numpy.ndarray using PyArrayInterface.

str

orjson is strict about UTF-8 conformance. This is stricter than the standard library's json module, which will serialize and deserialize UTF-16 surrogates, e.g., "\ud800", that are invalid UTF-8.

If orjson.dumps() is given a str that does not contain valid UTF-8, orjson.JSONEncodeError is raised. If loads() receives invalid UTF-8, orjson.JSONDecodeError is raised.

orjson and rapidjson are the only compared JSON libraries to consistently error on bad input.

>>> import orjson, ujson, rapidjson, json
>>> orjson.dumps('\ud800')
JSONEncodeError: str is not valid UTF-8: surrogates not allowed
>>> ujson.dumps('\ud800')
UnicodeEncodeError: 'utf-8' codec ...
>>> rapidjson.dumps('\ud800')
UnicodeEncodeError: 'utf-8' codec ...
>>> json.dumps('\ud800')
'"\\ud800"'
>>> orjson.loads('"\\ud800"')
JSONDecodeError: unexpected end of hex escape at line 1 column 8: line 1 column 1 (char 0)
>>> ujson.loads('"\\ud800"')
''
>>> rapidjson.loads('"\\ud800"')
ValueError: Parse error at offset 1: The surrogate pair in string is invalid.
>>> json.loads('"\\ud800"')
'\ud800'

To make a best effort at deserializing bad input, first decode bytes using the replace or lossy argument for errors:

>>> import orjson
>>> orjson.loads(b'"\xed\xa0\x80"')
JSONDecodeError: str is not valid UTF-8: surrogates not allowed
>>> orjson.loads(b'"\xed\xa0\x80"'.decode("utf-8", "replace"))
'���'

uuid

orjson serializes uuid.UUID instances to RFC 4122 format, e.g., "f81d4fae-7dec-11d0-a765-00a0c91e6bf6".

>>> import orjson, uuid
>>> orjson.dumps(uuid.UUID('f81d4fae-7dec-11d0-a765-00a0c91e6bf6'))
b'"f81d4fae-7dec-11d0-a765-00a0c91e6bf6"'
>>> orjson.dumps(uuid.uuid5(uuid.NAMESPACE_DNS, "python.org"))
b'"886313e1-3b8a-5372-9b90-0c9aee199e5d"'

Testing

The library has comprehensive tests. There are tests against fixtures in the JSONTestSuite and nativejson-benchmark repositories. It is tested to not crash against the Big List of Naughty Strings. It is tested to not leak memory. It is tested to not crash against and not accept invalid UTF-8. There are integration tests exercising the library's use in web servers (gunicorn using multiprocess/forked workers) and when multithreaded. It also uses some tests from the ultrajson library.

orjson is the most correct of the compared libraries. This graph shows how each library handles a combined 342 JSON fixtures from the JSONTestSuite and nativejson-benchmark tests:

Library Invalid JSON documents not rejected Valid JSON documents not deserialized
orjson 0 0
ujson 38 0
rapidjson 6 0
simplejson 13 0
json 17 0

This shows that all libraries deserialize valid JSON but only orjson correctly rejects the given invalid JSON fixtures. Errors are largely due to accepting invalid strings and numbers.

The graph above can be reproduced using the pycorrectness script.

Performance

Serialization and deserialization performance of orjson is better than ultrajson, rapidjson, simplejson, or json. The benchmarks are done on fixtures of real data:

  • twitter.json, 631.5KiB, results of a search on Twitter for "一", containing CJK strings, dictionaries of strings and arrays of dictionaries, indented.

  • github.json, 55.8KiB, a GitHub activity feed, containing dictionaries of strings and arrays of dictionaries, not indented.

  • citm_catalog.json, 1.7MiB, concert data, containing nested dictionaries of strings and arrays of integers, indented.

  • canada.json, 2.2MiB, coordinates of the Canadian border in GeoJSON format, containing floats and arrays, indented.

Latency

twitter.json serialization

Library Median latency (milliseconds) Operations per second Relative (latency)
orjson 0.33 3069.4 1
ujson 1.68 592.8 5.15
rapidjson 1.12 891 3.45
simplejson 2.29 436.2 7.03
json 1.8 556.6 5.52

twitter.json deserialization

Library Median latency (milliseconds) Operations per second Relative (latency)
orjson 0.81 1237.6 1
ujson 1.87 533.9 2.32
rapidjson 2.97 335.8 3.67
simplejson 2.15 463.8 2.66
json 2.45 408.2 3.03

github.json serialization

Library Median latency (milliseconds) Operations per second Relative (latency)
orjson 0.03 28817.3 1
ujson 0.18 5478.2 5.26
rapidjson 0.1 9686.4 2.98
simplejson 0.26 3901.3 7.39
json 0.18 5437 5.27

github.json deserialization

Library Median latency (milliseconds) Operations per second Relative (latency)
orjson 0.07 15270 1
ujson 0.19 5374.8 2.84
rapidjson 0.17 5854.9 2.59
simplejson 0.15 6707.4 2.27
json 0.16 6397.3 2.39

citm_catalog.json serialization

Library Median latency (milliseconds) Operations per second Relative (latency)
orjson 0.58 1722.5 1
ujson 2.89 345.6 4.99
rapidjson 1.83 546.4 3.15
simplejson 10.39 95.9 17.89
json 3.93 254.6 6.77

citm_catalog.json deserialization

Library Median latency (milliseconds) Operations per second Relative (latency)
orjson 1.76 569.2 1
ujson 3.5 284.3 1.99
rapidjson 5.77 173.2 3.28
simplejson 5.13 194.7 2.92
json 4.99 200.5 2.84

canada.json serialization

Library Median latency (milliseconds) Operations per second Relative (latency)
orjson 3.62 276.3 1
ujson 14.16 70.6 3.91
rapidjson 33.64 29.7 9.29
simplejson 57.46 17.4 15.88
json 35.7 28 9.86

canada.json deserialization

Library Median latency (milliseconds) Operations per second Relative (latency)
orjson 3.89 256.6 1
ujson 8.73 114.3 2.24
rapidjson 23.33 42.8 5.99
simplejson 23.99 41.7 6.16
json 21.1 47.4 5.42

Memory

orjson as of 3.7.0 has higher baseline memory usage than other libraries due to a persistent buffer used for parsing. Incremental memory usage when deserializing is similar to the standard library and other third-party libraries.

This measures, in the first column, RSS after importing a library and reading the fixture, and in the second column, increases in RSS after repeatedly calling loads() on the fixture.

twitter.json

Library import, read() RSS (MiB) loads() increase in RSS (MiB)
orjson 21.8 2.8
ujson 14.3 4.8
rapidjson 14.9 4.6
simplejson 13.4 2.4
json 13.1 2.3

github.json

Library import, read() RSS (MiB) loads() increase in RSS (MiB)
orjson 21.2 0.5
ujson 13.6 0.6
rapidjson 14.1 0.5
simplejson 12.5 0.3
json 12.4 0.3

citm_catalog.json

Library import, read() RSS (MiB) loads() increase in RSS (MiB)
orjson 23 10.6
ujson 15.2 11.2
rapidjson 15.8 29.7
simplejson 14.4 24.7
json 13.9 24.7

canada.json

Library import, read() RSS (MiB) loads() increase in RSS (MiB)
orjson 23.2 21.3
ujson 15.6 19.2
rapidjson 16.3 23.4
simplejson 15 21.1
json 14.3 20.9

Reproducing

The above was measured using Python 3.10.5 on Linux (amd64) with orjson 3.7.9, ujson 5.4.0, python-rapidson 1.8, and simplejson 3.17.6.

The latency results can be reproduced using the pybench and graph scripts. The memory results can be reproduced using the pymem script.

Questions

Why can't I install it from PyPI?

Probably pip needs to be upgraded to version 20.3 or later to support the latest manylinux_x_y or universal2 wheel formats.

"Cargo, the Rust package manager, is not installed or is not on PATH."

This happens when there are no binary wheels (like manylinux) for your platform on PyPI. You can install Rust through rustup or a package manager and then it will compile.

Will it deserialize to dataclasses, UUIDs, decimals, etc or support object_hook?

No. This requires a schema specifying what types are expected and how to handle errors etc. This is addressed by data validation libraries a level above this.

Will it serialize to str?

No. bytes is the correct type for a serialized blob.

Will it support PyPy?

Probably not.

Packaging

To package orjson requires at least Rust 1.60 and the maturin build tool. The recommended build command is:

maturin build --release --strip

It benefits from also having a C build environment to compile a faster deserialization backend. See this project's manylinux_2_28 builds for an example using clang and LTO.

The project's own CI tests against nightly-2023-08-30 and stable 1.60. It is prudent to pin the nightly version because that channel can introduce breaking changes.

orjson is tested for amd64, aarch64, arm7, ppc64le, and s390x on Linux. It is tested for amd64 on macOS and cross-compiles for aarch64. For Windows it is tested on amd64 and i686.

There are no runtime dependencies other than libc.

The source distribution on PyPI contains all dependencies' source and can be built without network access. The file can be downloaded from https://files.pythonhosted.org/packages/source/o/orjson/orjson-${version}.tar.gz.

orjson's tests are included in the source distribution on PyPI. The requirements to run the tests are specified in test/requirements.txt. The tests should be run as part of the build. It can be run with pytest -q test.

License

orjson was written by ijl <ijl@mailbox.org>, copyright 2018 - 2023, licensed under both the Apache 2 and MIT licenses.

Project details


Release history Release notifications | RSS feed

This version

3.9.7

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

orjson-3.9.7.tar.gz (4.9 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

orjson-3.9.7-cp312-none-win_amd64.whl (134.9 kB view details)

Uploaded CPython 3.12Windows x86-64

orjson-3.9.7-cp312-cp312-musllinux_1_1_x86_64.whl (309.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ x86-64

orjson-3.9.7-cp312-cp312-musllinux_1_1_aarch64.whl (315.2 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ ARM64

orjson-3.9.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (138.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

orjson-3.9.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (152.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ s390x

orjson-3.9.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (156.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ppc64le

orjson-3.9.7-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (129.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARMv7l

orjson-3.9.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (295.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

orjson-3.9.7-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl (242.1 kB view details)

Uploaded CPython 3.12macOS 10.15+ universal2 (ARM64, x86-64)macOS 10.15+ x86-64macOS 11.0+ ARM64

orjson-3.9.7-cp311-none-win_amd64.whl (134.8 kB view details)

Uploaded CPython 3.11Windows x86-64

orjson-3.9.7-cp311-none-win32.whl (141.4 kB view details)

Uploaded CPython 3.11Windows x86

orjson-3.9.7-cp311-cp311-musllinux_1_1_x86_64.whl (308.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

orjson-3.9.7-cp311-cp311-musllinux_1_1_aarch64.whl (315.3 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ ARM64

orjson-3.9.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (138.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

orjson-3.9.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (152.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ s390x

orjson-3.9.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (156.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ppc64le

orjson-3.9.7-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (129.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARMv7l

orjson-3.9.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (295.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

orjson-3.9.7-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl (242.2 kB view details)

Uploaded CPython 3.11macOS 10.15+ universal2 (ARM64, x86-64)macOS 10.15+ x86-64macOS 11.0+ ARM64

orjson-3.9.7-cp310-none-win_amd64.whl (134.8 kB view details)

Uploaded CPython 3.10Windows x86-64

orjson-3.9.7-cp310-none-win32.whl (141.4 kB view details)

Uploaded CPython 3.10Windows x86

orjson-3.9.7-cp310-cp310-musllinux_1_1_x86_64.whl (308.9 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

orjson-3.9.7-cp310-cp310-musllinux_1_1_aarch64.whl (315.3 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ ARM64

orjson-3.9.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (138.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

orjson-3.9.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (152.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ s390x

orjson-3.9.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (156.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ppc64le

orjson-3.9.7-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (129.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARMv7l

orjson-3.9.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (295.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

orjson-3.9.7-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl (242.2 kB view details)

Uploaded CPython 3.10macOS 10.15+ universal2 (ARM64, x86-64)macOS 10.15+ x86-64macOS 11.0+ ARM64

orjson-3.9.7-cp39-none-win_amd64.whl (134.7 kB view details)

Uploaded CPython 3.9Windows x86-64

orjson-3.9.7-cp39-none-win32.whl (141.2 kB view details)

Uploaded CPython 3.9Windows x86

orjson-3.9.7-cp39-cp39-musllinux_1_1_x86_64.whl (308.8 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

orjson-3.9.7-cp39-cp39-musllinux_1_1_aarch64.whl (315.2 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ ARM64

orjson-3.9.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (138.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

orjson-3.9.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (152.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ s390x

orjson-3.9.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (156.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ppc64le

orjson-3.9.7-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (129.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARMv7l

orjson-3.9.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (295.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

orjson-3.9.7-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl (241.8 kB view details)

Uploaded CPython 3.9macOS 10.15+ universal2 (ARM64, x86-64)macOS 10.15+ x86-64macOS 11.0+ ARM64

orjson-3.9.7-cp38-none-win_amd64.whl (134.6 kB view details)

Uploaded CPython 3.8Windows x86-64

orjson-3.9.7-cp38-none-win32.whl (141.1 kB view details)

Uploaded CPython 3.8Windows x86

orjson-3.9.7-cp38-cp38-musllinux_1_1_x86_64.whl (308.6 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

orjson-3.9.7-cp38-cp38-musllinux_1_1_aarch64.whl (315.1 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ ARM64

orjson-3.9.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (138.5 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

orjson-3.9.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (152.4 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ s390x

orjson-3.9.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (155.9 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ppc64le

orjson-3.9.7-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (129.2 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARMv7l

orjson-3.9.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (295.1 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

orjson-3.9.7-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl (241.5 kB view details)

Uploaded CPython 3.8macOS 10.15+ universal2 (ARM64, x86-64)macOS 10.15+ x86-64macOS 11.0+ ARM64

orjson-3.9.7-cp37-none-win_amd64.whl (134.6 kB view details)

Uploaded CPython 3.7Windows x86-64

orjson-3.9.7-cp37-none-win32.whl (141.1 kB view details)

Uploaded CPython 3.7Windows x86

orjson-3.9.7-cp37-cp37m-musllinux_1_1_x86_64.whl (308.7 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ x86-64

orjson-3.9.7-cp37-cp37m-musllinux_1_1_aarch64.whl (315.1 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ ARM64

orjson-3.9.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (138.5 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

orjson-3.9.7-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl (152.1 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ s390x

orjson-3.9.7-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (155.8 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ppc64le

orjson-3.9.7-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (129.2 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ARMv7l

orjson-3.9.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (295.1 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ARM64

orjson-3.9.7-cp37-cp37m-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl (241.6 kB view details)

Uploaded CPython 3.7mmacOS 10.15+ universal2 (ARM64, x86-64)macOS 10.15+ x86-64macOS 11.0+ ARM64

File details

Details for the file orjson-3.9.7.tar.gz.

File metadata

  • Download URL: orjson-3.9.7.tar.gz
  • Upload date:
  • Size: 4.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.2.3

File hashes

Hashes for orjson-3.9.7.tar.gz
Algorithm Hash digest
SHA256 85e39198f78e2f7e054d296395f6c96f5e02892337746ef5b6a1bf3ed5910142
MD5 58b3e513a27bce0da7e6332eeec5b638
BLAKE2b-256 d9e83b73e455a5f5f16ed70b364b5dbaec5691e7ae1d3c1e6cf8945735ec05a0

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp312-none-win_amd64.whl.

File metadata

  • Download URL: orjson-3.9.7-cp312-none-win_amd64.whl
  • Upload date:
  • Size: 134.9 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.2.3

File hashes

Hashes for orjson-3.9.7-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 d8692948cada6ee21f33db5e23460f71c8010d6dfcfe293c9b96737600a7df78
MD5 981046f0f7d7e86ece9c8e97096adae1
BLAKE2b-256 4cd99452a55c50fe1cef0e8165df39851fa2bd992a5a42a331ba5174948407be

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp312-cp312-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 f26fb3e8e3e2ee405c947ff44a3e384e8fa1843bc35830fe6f3d9a95a1147b6e
MD5 b436dc251d74cde3f43bf39491ec28c4
BLAKE2b-256 32640c3f65d6c8a6c774d34f10caa93dc8e44246a4ac9c54ddc602eaa8c4d320

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp312-cp312-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp312-cp312-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 915e22c93e7b7b636240c5a79da5f6e4e84988d699656c8e27f2ac4c95b8dcc0
MD5 06e257aab0a1b8d4207f3bb6d54ed698
BLAKE2b-256 9ab15f2782fd84beb0a362e3753256b22afc89a6a83c984312fc9e90d23b4f60

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 70b9a20a03576c6b7022926f614ac5a6b0914486825eac89196adf3267c6489d
MD5 03304d41dc3e389b1e6ad7ee1fffed59
BLAKE2b-256 c47f6756f39d2e56c6c7899e84d10841a81578386fc006f85b3a41f7315911c2

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 1eb0b0b2476f357eb2975ff040ef23978137aa674cd86204cfd15d2d17318588
MD5 a16ff93de8e6d8ad1a311e04465da99a
BLAKE2b-256 6787e2152e0d51a6c22e815f995e1034dcdf95b84aef40e47121bb1b1b49ca17

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 7ea3e63e61b4b0beeb08508458bdff2daca7a321468d3c4b320a758a2f554d31
MD5 e20bc489bcbfa529006dad3d9b21347b
BLAKE2b-256 b7cfafdb906cdfef712728d5b174ceb71a6976f82f7db9a91307a788b279e852

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 154fd67216c2ca38a2edb4089584504fbb6c0694b518b9020ad35ecc97252bb9
MD5 eba8acc3a3acf00e6df0dc6bf3728f1f
BLAKE2b-256 640533a897cc8be8c01cf8c7896b8f57abdfe932198dd7a21f186bc3fbb4a38f

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a347d7b43cb609e780ff8d7b3107d4bcb5b6fd09c2702aa7bdf52f15ed09fa09
MD5 f63a1b90618e55f4d13cf300c8010f61
BLAKE2b-256 fe207e0aa4498c529d45af881e43702829696d7774732d1034c3681f20c12073

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 1c3cee5c23979deb8d1b82dc4cc49be59cccc0547999dbe9adb434bb7af11cf7
MD5 b492173d9714c4d3a63cb11f66d5c0c4
BLAKE2b-256 51617de9b955677e73f40391aa4b77d1b5598aaa570b90c9fd55ca62c4c4350f

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp311-none-win_amd64.whl.

File metadata

  • Download URL: orjson-3.9.7-cp311-none-win_amd64.whl
  • Upload date:
  • Size: 134.8 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.2.3

File hashes

Hashes for orjson-3.9.7-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 9d62c583b5110e6a5cf5169ab616aa4ec71f2c0c30f833306f9e378cf51b6c86
MD5 a940141255678be55f310fc843d3302f
BLAKE2b-256 b960ffd1debfd00391693922aa998ddadf0cdea73a5f7465a54a29e122d1102b

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp311-none-win32.whl.

File metadata

  • Download URL: orjson-3.9.7-cp311-none-win32.whl
  • Upload date:
  • Size: 141.4 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.2.3

File hashes

Hashes for orjson-3.9.7-cp311-none-win32.whl
Algorithm Hash digest
SHA256 8bdb6c911dae5fbf110fe4f5cba578437526334df381b3554b6ab7f626e5eeca
MD5 03c38902ebabe518901015f2c0741093
BLAKE2b-256 1c84bcd9d6dd997f6195bafdc994357a3e269a993d2d3f7d5b5b26c1fdb01613

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 f9e01239abea2f52a429fe9d95c96df95f078f0172489d691b4a848ace54a476
MD5 5110fe569e12cb51aa8f867698425f96
BLAKE2b-256 815742fa01c3aaef429ef8055541588410824d0334a40fde55c5673240e5c419

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp311-cp311-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp311-cp311-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 8769806ea0b45d7bf75cad253fba9ac6700b7050ebb19337ff6b4e9060f963fa
MD5 e279ced8268fd6e13c4ef820da67a025
BLAKE2b-256 ca247ae273ce71efcf4df0e49e06963e0c2e29d36f52127a5f1496068eb9ba86

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e5205ec0dfab1887dd383597012199f5175035e782cdb013c542187d280ca443
MD5 0ae267da3324184bb49949997450541d
BLAKE2b-256 0be12c6e894de23c1bb5c76eff087c99fc3c7ce8f317a793f8c80767f4225733

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 23be6b22aab83f440b62a6f5975bcabeecb672bc627face6a83bc7aeb495dc7e
MD5 64159433db9d9af4ce98df4c32f730ee
BLAKE2b-256 a1a5ecef9ab90606f378e36b7f27c00d5661451a725cf1e1cb9912ba15c2c40e

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 21a3344163be3b2c7e22cef14fa5abe957a892b2ea0525ee86ad8186921b6cf0
MD5 7fc3153c6c3c020787f18578bf4e0a42
BLAKE2b-256 e4bf97ff5d7921e13476871badbbed14c153c4de13bda3d3157ba8ac0ba4d287

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 38e34c3a21ed41a7dbd5349e24c3725be5416641fdeedf8f56fcbab6d981c900
MD5 103a914e540d17ab5c1afb96b19d0d39
BLAKE2b-256 5756ffb225ebbfccdb9666659005e4491506e9dc7c523aff0a38ac9a5e4e6ef3

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f738fee63eb263530efd4d2e9c76316c1f47b3bbf38c1bf45ae9625feed0395e
MD5 d16fc4137798c03e7890c7fbb870657a
BLAKE2b-256 a307101e3509440fe5ac73fd5ce814171467e01c9226dcfa2e1ffc149e6c341d

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 1f8b47650f90e298b78ecf4df003f66f54acdba6a0f763cc4df1eab048fe3738
MD5 bc2c2122cb42380c067329f8ed0fc499
BLAKE2b-256 dce4604e0e8b5b4f1564bb6c55875ca8a0b17f01bc76afe90142839babfc86df

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp310-none-win_amd64.whl.

File metadata

  • Download URL: orjson-3.9.7-cp310-none-win_amd64.whl
  • Upload date:
  • Size: 134.8 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.2.3

File hashes

Hashes for orjson-3.9.7-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 82720ab0cf5bb436bbd97a319ac529aee06077ff7e61cab57cee04a596c4f9b4
MD5 5a8f6b5596c000ee7221c512d249b2c3
BLAKE2b-256 bce3635174fdb48aaf6607488554f958013c54446d53ddc276a3cc7aba23c290

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp310-none-win32.whl.

File metadata

  • Download URL: orjson-3.9.7-cp310-none-win32.whl
  • Upload date:
  • Size: 141.4 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.2.3

File hashes

Hashes for orjson-3.9.7-cp310-none-win32.whl
Algorithm Hash digest
SHA256 e94b7b31aa0d65f5b7c72dd8f8227dbd3e30354b99e7a9af096d967a77f2a580
MD5 ceeeecbbda02ad4437ea49533a7a897a
BLAKE2b-256 cffbdddf4b78fc940caccc827d69bec5ba9e388b4cc21f62f58d6ac51873c2f1

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 36b1df2e4095368ee388190687cb1b8557c67bc38400a942a1a77713580b50ae
MD5 734de0c83ed99f6d3aac55b2c15d759a
BLAKE2b-256 b3efddad255db0c17cbba1340db3abdddccce2d2b9a4df8f3b786286a7bac11a

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp310-cp310-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp310-cp310-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 3aab72d2cef7f1dd6104c89b0b4d6b416b0db5ca87cc2fac5f79c5601f549cc2
MD5 7e724b3c2603538d63c787cea571b7b2
BLAKE2b-256 0a763868f5a364929e4dad47521fec25537ca1c1d1de24ec62000728ee4a00bb

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 355efdbbf0cecc3bd9b12589b8f8e9f03c813a115efa53f8dc2a523bfdb01334
MD5 76c47677dbf29bbd421a00aaa6e6e513
BLAKE2b-256 5d2a7719c0e6a812037d3de563f34fd7c854933b2bcade98ea5ab11230c0b735

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 80acafe396ab689a326ab0d80f8cc61dec0dd2c5dca5b4b3825e7b1e0132c101
MD5 309bbfee50380ffca11955ce6f681c31
BLAKE2b-256 f6fb0542083e6180f5944f9531630df3e27c07d6df370cbdc8971d085086a659

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 a19e4074bc98793458b4b3ba35a9a1d132179345e60e152a1bb48c538ab863c4
MD5 55b9c71bed5da091e8eba4fd9ab5005c
BLAKE2b-256 cb007616af72db335b78bde4887eee089326c4ed06e712b4da109d4f3ef3a321

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 5e736815b30f7e3c9044ec06a98ee59e217a833227e10eb157f44071faddd7c5
MD5 c48196cffbb55f9c716d3a964fc5ae5c
BLAKE2b-256 f5d4e26efe128ae154e0d05c65b3cae5b6eeeb4d393b61a7eddecb8b26f36a6a

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5198633137780d78b86bb54dafaaa9baea698b4f059456cd4554ab7009619221
MD5 da12cd56782b6b6744abcff06548ef28
BLAKE2b-256 8736a6f871006c8bb5498fa1cb3536b3c327f2cdbb96f85951bab16a8dc20a31

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 b6df858e37c321cefbf27fe7ece30a950bcc3a75618a804a0dcef7ed9dd9c92d
MD5 9806f8892e81e4711cc3807c0d78c7f3
BLAKE2b-256 fae2376b07aa93994449b10848a11b06ff534d888f159863c208231135f26a90

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp39-none-win_amd64.whl.

File metadata

  • Download URL: orjson-3.9.7-cp39-none-win_amd64.whl
  • Upload date:
  • Size: 134.7 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.2.3

File hashes

Hashes for orjson-3.9.7-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 9ef82157bbcecd75d6296d5d8b2d792242afcd064eb1ac573f8847b52e58f677
MD5 97dcdecfdb7b2d491be8e46d3c3b78ed
BLAKE2b-256 79cee3af433031ea392acf85cfb194d06d4d85179cd681e754d424561d18fc70

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp39-none-win32.whl.

File metadata

  • Download URL: orjson-3.9.7-cp39-none-win32.whl
  • Upload date:
  • Size: 141.2 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.2.3

File hashes

Hashes for orjson-3.9.7-cp39-none-win32.whl
Algorithm Hash digest
SHA256 14d3fb6cd1040a4a4a530b28e8085131ed94ebc90d72793c59a713de34b60838
MD5 ac2a96434abfb73d8088ff08ec079ff7
BLAKE2b-256 7a958b16527756852ebe07e8c746fd4af0de1228c2a3030fe944d0c4e075801a

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4891d4c934f88b6c29b56395dfc7014ebf7e10b9e22ffd9877784e16c6b2064f
MD5 2ca4652271a3d3a42da18749e66e233e
BLAKE2b-256 982b8f4b22f6b0c7892403e9a532e8f4a64ab25a0ef511d3bc7b0af668e3aeed

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp39-cp39-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp39-cp39-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 c3ba725cf5cf87d2d2d988d39c6a2a8b6fc983d78ff71bc728b0be54c869c884
MD5 1fc17496ca5f5e32a085aa5dc3b4fc91
BLAKE2b-256 7bce4cdd5c56a8e9ed3892517871f16451cc6214a205fc6fe29a0ec400019233

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4c616b796358a70b1f675a24628e4823b67d9e376df2703e893da58247458956
MD5 8368cafdc10219296276be2b4f76e8ad
BLAKE2b-256 0e3149db18d0728852eea1f633e92cf189acf819508da9ff1b30c99baf401c85

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 cd3e7aae977c723cc1dbb82f97babdb5e5fbce109630fbabb2ea5053523c89d3
MD5 931a3c9abd57a0f3948f2698c30ee6d8
BLAKE2b-256 5b900b10fee0cd11ab6bfb73805ae8aeab3ec827a2e6b5c5cc03ff22efbf99fa

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 8f4b0042d8388ac85b8330b65406c84c3229420a05068445c13ca28cc222f1f7
MD5 2ccab7ea21e6961a69b3f34009f65deb
BLAKE2b-256 2d9e49f9fd5b910aeb4eeaaf22d352c28f1fb3fce30cbaa594e941f788ecd14e

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 0eb850a87e900a9c484150c414e21af53a6125a13f6e378cf4cc11ae86c8f9c5
MD5 6c5fa3dd4a21d38bbd1118816c84fcbd
BLAKE2b-256 27bd5e097f79ae1b8e9bfba5db249308f79f53d223e2f1cfe5c86d26f7a39b20

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 01d647b2a9c45a23a84c3e70e19d120011cba5f56131d185c1b78685457320bb
MD5 8776f20bb47f51efeca19d8c18b18ceb
BLAKE2b-256 6585804dfb4c184371edf66dcbb4b26599b71511649a80957687faafce3eace8

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 e7e7f44e091b93eb39db88bb0cb765db09b7a7f64aea2f35e7d86cbf47046c65
MD5 dad28606efa09e068bedad1ea6ec6dd8
BLAKE2b-256 8ca5c0c1ecab00c2c4bec414ab4d4be7c20203181b0ae8ba24692ebfae4fc405

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp38-none-win_amd64.whl.

File metadata

  • Download URL: orjson-3.9.7-cp38-none-win_amd64.whl
  • Upload date:
  • Size: 134.6 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.2.3

File hashes

Hashes for orjson-3.9.7-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 7a34a199d89d82d1897fd4a47820eb50947eec9cda5fd73f4578ff692a912f89
MD5 f5b0c1f1b448852b18dc14d274832450
BLAKE2b-256 5c0c892232e0f0c22c54d2119892aa0fede738ab4a884417836e0bf2f016302b

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp38-none-win32.whl.

File metadata

  • Download URL: orjson-3.9.7-cp38-none-win32.whl
  • Upload date:
  • Size: 141.1 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.2.3

File hashes

Hashes for orjson-3.9.7-cp38-none-win32.whl
Algorithm Hash digest
SHA256 76a0fc023910d8a8ab64daed8d31d608446d2d77c6474b616b34537aa7b79c7f
MD5 058758f970c6e8fda23674988ccf1c08
BLAKE2b-256 d438d6d7d11171c2c911cc6d0139c493a620ef3fe3da33871eef38068dba569a

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 cf334ce1d2fadd1bf3e5e9bf15e58e0c42b26eb6590875ce65bd877d917a58aa
MD5 070c775980ed8689e53606d9ac603b6d
BLAKE2b-256 eff86b1f86475ce426a1090416cb7c07808a05e4e0e99f4a81cc7d96b05e54bd

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp38-cp38-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp38-cp38-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 11c10f31f2c2056585f89d8229a56013bc2fe5de51e095ebc71868d070a8dd81
MD5 2a372b492146b9ebc7468eabe2d95c3f
BLAKE2b-256 fd9979423be7f314c6623d9938d81ae052242bbb7e0377d83bc1575f8c29d0f5

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 83cc275cf6dcb1a248e1876cdefd3f9b5f01063854acdfd687ec360cd3c9712a
MD5 ef78036b2e2b091e19f8de0fadf9e317
BLAKE2b-256 ccb4324754a9e255295c0b5966f78999822e180a0fa2c22fd96edefac9dd8313

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 ca1706e8b8b565e934c142db6a9592e6401dc430e4b067a97781a997070c5378
MD5 d60382dd53cd80d51232a6ef3819862d
BLAKE2b-256 58e7007a757356f4a583152c6916503246f4d93be5ff7140d663ea8581f48943

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 9274ba499e7dfb8a651ee876d80386b481336d3868cba29af839370514e4dce0
MD5 e35dec57c76d8e0b073aabe71c9990ff
BLAKE2b-256 e67fa44f6494b96ef3a74cb8b58a06be7eef2dc49e224451d4bd005005ca0c2f

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 b8e59650292aa3a8ea78073fc84184538783966528e442a1b9ed653aa282edcf
MD5 d63c785c522ee98e0e76d7107fcca5c2
BLAKE2b-256 6efdb7570ad2cacef11cca31e94e435bf7ef23ba5da0369eb7ab21b7acb84f95

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7951af8f2998045c656ba8062e8edf5e83fd82b912534ab1de1345de08a41d2b
MD5 097ea521b8ec66711da823fcd7f6f7b3
BLAKE2b-256 d05641b9c8991dde0a8dbbb01e2df5720f42782315661a73d19901d57f79b4e1

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 5da9032dac184b2ae2da4bce423edff7db34bfd936ebd7d4207ea45840f03905
MD5 29ed2be02b42b8401cd46730667e53c9
BLAKE2b-256 39bf895ecad8e714b5f762ac5e067c5da5d651706568701cd76a756015896bcf

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp37-none-win_amd64.whl.

File metadata

  • Download URL: orjson-3.9.7-cp37-none-win_amd64.whl
  • Upload date:
  • Size: 134.6 kB
  • Tags: CPython 3.7, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.2.3

File hashes

Hashes for orjson-3.9.7-cp37-none-win_amd64.whl
Algorithm Hash digest
SHA256 bcb9a60ed2101af2af450318cd89c6b8313e9f8df4e8fb12b657b2e97227cf08
MD5 bc9fffafccfa3081ecc39e8f73a096d1
BLAKE2b-256 61d85b924c4b5abc9c58761c5e4c00f136b5eff2d98e25a3208f5f95580bfa88

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp37-none-win32.whl.

File metadata

  • Download URL: orjson-3.9.7-cp37-none-win32.whl
  • Upload date:
  • Size: 141.1 kB
  • Tags: CPython 3.7, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.2.3

File hashes

Hashes for orjson-3.9.7-cp37-none-win32.whl
Algorithm Hash digest
SHA256 26ffb398de58247ff7bde895fe30817a036f967b0ad0e1cf2b54bda5f8dcfdd9
MD5 3753dd398fb895409437a6e648360de2
BLAKE2b-256 96bf24216929cf344da32c80ba4880caa7c7967f97a6853884886f02d591c9fb

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 410aa9d34ad1089898f3db461b7b744d0efcf9252a9415bbdf23540d4f67589f
MD5 5172ed7c672673df8fe2c497bf10bf4f
BLAKE2b-256 d31b4a71a22d8396a3a822f9a4687731053cf7e37c90453c7e58a7a4fc0c237c

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp37-cp37m-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp37-cp37m-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 b4fb306c96e04c5863d52ba8d65137917a3d999059c11e659eba7b75a69167bd
MD5 cf3a633618ae0077a1a444e12e92bfe8
BLAKE2b-256 f4000b394601fb51a7ae6f93299dac358fc3f828b5db31d7592cfc71e61b560d

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5a2937f528c84e64be20cb80e70cea76a6dfb74b628a04dab130679d4454395c
MD5 1c483f004a14829833a79aebe8ee7f6b
BLAKE2b-256 c8b44a5d1d41cd74c5bcd39dc54b39979e532245134d18db89fe16a28db65363

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 45a47f41b6c3beeb31ac5cf0ff7524987cfcce0a10c43156eb3ee8d92d92bf22
MD5 d00378d514d7de0cd559fbcea4a91901
BLAKE2b-256 82d284ecfd222a2269153045f6ed22beae2d8ccb084770dc02e85bbcbec8f9b3

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 90fe73a1f0321265126cbba13677dcceb367d926c7a65807bd80916af4c17047
MD5 246f1eba7f582ef84d92f1c0adb333af
BLAKE2b-256 ba2966b89185c2df9e82c345e40917dff735be831ea35f01f4965c95e80d20e7

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 2f8fcf696bbbc584c0c7ed4adb92fd2ad7d153a50258842787bc1524e50d7081
MD5 e7ba45de05b83aca63de060b0364504b
BLAKE2b-256 bed94f8197274d37582efcb1c7a3677a2670f5ffb8c95119e23e4a9c63b13a3e

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 63ef3d371ea0b7239ace284cab9cd00d9c92b73119a7c274b437adb09bda35e6
MD5 9686baae4b2a871bae4342bfa7761730
BLAKE2b-256 de2f21249f0f016a48e739be4a338a1829806cdb75e0df5a016bccd973024d7e

See more details on using hashes here.

File details

Details for the file orjson-3.9.7-cp37-cp37m-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for orjson-3.9.7-cp37-cp37m-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 7bab596678d29ad969a524823c4e828929a90c09e91cc438e0ad79b37ce41166
MD5 8ae9053fcc08bf23863c6aa3c72d7aab
BLAKE2b-256 b85981dc2cf14a84342fa14146e100939e4f289edc1770d33f3bb01e557dc3bc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page